What exactly is HEADLESS?

To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/TheCherno. The first 200 of you will get 20% off Brilliant’s annual premium subscription!
Patreon ► / thecherno
Instagram ► / thecherno
Twitter ► / thecherno
Discord ► / discord
Walnut (headless code) ► github.com/StudioCherno/Walnu...
Hazel ► hazelengine.com
🕹️ Play our latest game FREE (made in Hazel!) ► studiocherno.itch.io/saving-c...
🌏 Need web hosting? ► hostinger.com/cherno
💰 Links to stuff I use:
⌨ Keyboard ► geni.us/T2J7
🐭 Mouse ► geni.us/BuY7
💻 Monitors ► geni.us/wZFSwSK
This video is sponsored by Brilliant.

Пікірлер: 77

  • @TheCherno
    @TheCherno8 ай бұрын

    Fun fact: this video was filmed in three different countries. Also don’t forget you can try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/TheCherno. The first 200 of you will get 20% off Brilliant’s annual premium subscription!

  • @plasmarade

    @plasmarade

    8 ай бұрын

    Which countries?

  • @criostasis

    @criostasis

    8 ай бұрын

    Now that Unity has revealed their true greed, do you see any uptick in devs trying out Hazel?

  • @gwch3481
    @gwch34818 ай бұрын

    There are a lot of terms in software that sound weird to normal people. "How to kill orphaned children", "kill parent of child"

  • @JoeyClover

    @JoeyClover

    8 ай бұрын

    "Assign 5 slaves to the master"

  • @alimaster89

    @alimaster89

    8 ай бұрын

    "Kill Parent with a fork" is my Favorit

  • @numberformat

    @numberformat

    8 ай бұрын

    Will definitely put you on some list if you try to google it.

  • @dickheadrecs
    @dickheadrecs8 ай бұрын

    Windows users: “why would you run anything headless?” Linux users: “What’s a GUI?”

  • @AK-vx4dy

    @AK-vx4dy

    8 ай бұрын

    for Windows users: headless = service ;)

  • @dickheadrecs

    @dickheadrecs

    8 ай бұрын

    @@AK-vx4dy “service” in the windows universe reminds me of when you’re a restaurant and you’re sitting for about an hour before someone takes your order

  • @AK-vx4dy

    @AK-vx4dy

    8 ай бұрын

    @@dickheadrecs headless entities don't bother slefs with time

  • @dickheadrecs

    @dickheadrecs

    8 ай бұрын

    @@AK-vx4dy it’s bad for my slef esteem

  • @AK-vx4dy

    @AK-vx4dy

    8 ай бұрын

    @@dickheadrecs Please stop, don't go darth path of impostor syndrome. Calm down and keep being proud.

  • @dicetrash
    @dicetrash8 ай бұрын

    I don't agree with Cherno's definition of headless as a console app vs a gui app, we generally call those "console apps" or if daemonized call them "services" but not "headless". The analogy of the monitor though was spot on. The term headless is usually used in a context where you would have a render but just do not send it to a display. Example is an vulkan headless surface, you draw to it and can use it as a buffer to then use that to go on and do game streaming or similar, or headless chrome for browser testing on servers where you have a render space, can check the rendered output for a match against an image but not need a display to test it.

  • @dicetrash

    @dicetrash

    8 ай бұрын

    Oh also no do not just arbitrarily sleep in a loop in your servers, a service should wake on event, so like a condition_variable::wait_for that when there is a new message coming in on your socket you wake up and do that work. See boost::asio::io_context::run implementation for a scalable service impl example.

  • @LightBlazeMC
    @LightBlazeMC8 ай бұрын

    Your career as a programmer grows better every time Cherno uploads

  • @manucanedo8039
    @manucanedo80398 ай бұрын

    "that enabled you to write the code just once" you made it very clear 2:32 😂

  • @dicetrash

    @dicetrash

    8 ай бұрын

    and then made it clear again at 2:42

  • @aaron96244
    @aaron962448 ай бұрын

    The #ifdef is driving me nuts. Your API for console is defined in the header. It shouldn't differ whether you include headless or GUI cpp... it should function the same. Leave it to the build environment or a Factory abstraction to build the concrete object. Good fundamental video to introduce the concept.

  • @tamasmolnar2567
    @tamasmolnar25678 ай бұрын

    Hi Cherno! It is a good video, very interesting. Could you make a video about state machines and how to implement one?

  • @ChaseCarlson
    @ChaseCarlson8 ай бұрын

    Hey Cherno I loved this vid! Can you make a video about reflection (introspection) in C++? I'd love to hear your thoughts on it, and reflection is super important in the game engine industry.

  • @benhetland576
    @benhetland5768 ай бұрын

    15:40 Hint in the case of OOP: this is a case for polymorphism and perhaps the factory pattern too.

  • @manfredmortel
    @manfredmortel8 ай бұрын

    As embedded developer I realized that I never had a head at all 😂

  • @AK-vx4dy

    @AK-vx4dy

    8 ай бұрын

    You head heads but smaller... LEDs, LCD, 7-segment / 16-segment displays

  • @rosiskharel389
    @rosiskharel3898 ай бұрын

    The thumbnail is a piece of art

  • @BlueTigerReal
    @BlueTigerReal8 ай бұрын

    The nearly headless Nick

  • @zeuglcockatrice4633
    @zeuglcockatrice46338 ай бұрын

    is there any chance you'll be making a vulkan tutorial? I am currently learning it after banging my head against the wall with opengl for a few months, during of which your videos were very helpful and it would be extremely nice of you to drop a full playlist, like in the next couple of weeks. It would help me a lot, and btw remember you can skip sleeping,eating and other useless things. Thanks in advance! I was joking obviously, but vulkan videos would be nice though...

  • @rbetik12
    @rbetik128 ай бұрын

    Hey! Thanks for your videos. What do you think about conan package manager? Do you have any plans to use it in future?

  • @ultimatesoup
    @ultimatesoup8 ай бұрын

    Have you kept up with the latest c++ features i.e moves, lambda, auto, deducing this, concepts and requires, modules etc etc? They've added some really cool stuff to the language over the years

  • @CrazyMig
    @CrazyMig8 ай бұрын

    Pro tip: Have all your projects in one solution file. Especially if you make changes to the shared code, you really want to unit test all affected projects.

  • @samuelschwager
    @samuelschwager7 ай бұрын

    there is a 3rd option: terminal ui/tui, kinda graphical but in the terminal

  • @MrBigfatcookiemonste
    @MrBigfatcookiemonste8 ай бұрын

    An alternative way I have learned to handle this, instead of using ifdefs. You create a factory method that provides you with the in this case CreateApplication function. You make a header file that contains 1 static function Create() that returns Walnut::Application*. So you have ApplicationFactory.h in your build scripts you can then conditionally include different .cpp files that implement this header. For example a FullApplicationFactory.cpp and a HeadlessApplicationFactory.cpp that both include the same header file and implement this create function. This allows you to add many different implementations depending on the platform. Professionally I've used this pattern a lot when building for many different architectures. easiliy 5+ and it scales way better than this approach. If you set your compile variables correctly the ide will still be able to correctly show you all the highlighting you need.

  • @CrazyMig

    @CrazyMig

    8 ай бұрын

    I agree, I also avoid using ifdef at all cost.

  • @aresaurelian

    @aresaurelian

    8 ай бұрын

    Combining heads and bodies interchangeably could be interesting. If the head is small enough we could always include it, but if it relies on heavy external libraries we don't.

  • @MrBigfatcookiemonste

    @MrBigfatcookiemonste

    8 ай бұрын

    @@aresaurelian yes I agree, that's why you probably want to mostly use it in a factory pattern where there's just one create function. Any complex types you need from libraries can be forward declared in most cases.

  • @aaron96244

    @aaron96244

    8 ай бұрын

    +1 🥰

  • @miljann98
    @miljann988 ай бұрын

    Was hoping for the lore on the enemy Headless from Sekiro, you even mentioned software at start, making me think you're talking about Fromsoftware, but it turned out to interrest me in a totally different way :D

  • @Aragubas
    @Aragubas8 ай бұрын

    lmao the thumbnail x3

  • @s.boucher9101
    @s.boucher91018 ай бұрын

    Make a series on Vulcan please!

  • @gsestream
    @gsestream8 ай бұрын

    try per pixel xyz-unit cubemaps (pre-calculated unit box plane-rays with plane to point-radius distance) as rendering engine, then draw the 6 images as normal textures to the main camera, yep kinda ray tracing but faster, use sphere grid/bvh bfs traversing

  • @gsestream

    @gsestream

    8 ай бұрын

    also try surface bump maps (ie sphere/cube equilateral rectangle depth maps, with texture and depth/alpha map), instead of triangles or voxels, more compressed data friendly and smaller storage, only image regular spaced png/jpg compressible data with gray scale depth data, stored in image buffers and files, where the sphere bump map is to be interpreted as spherical triangle mesh but at the resolution of the 360 degree image and depth of the vertex, and the vertex colored by the image color. also can be called as spherical height map mesh, combines uv-image directly with height map, no separate triangle mesh. want disjoint mesh parts, add more objects, or use the depth map height values creatively.

  • @cirkus442
    @cirkus4428 ай бұрын

    thanks

  • @SavageScientist
    @SavageScientist8 ай бұрын

    Headless computer, i called that just simply a computer. The whole world is twisted calling it the CPU , The Box, the Brain etc. LOL

  • @lazergenix
    @lazergenix8 ай бұрын

    great thumbnail

  • @sharachchandrabhat7390
    @sharachchandrabhat73908 ай бұрын

    "when I heard it for the first time, I had no idea what it meant" 😅

  • @HelloWorld-bb1lm
    @HelloWorld-bb1lm8 ай бұрын

    the thumbnails😂

  • @mklb-rw3kz
    @mklb-rw3kz8 ай бұрын

    hey Cherno. Are these new C++ videos part of "Cherno C++ Playlist"? If they are, would you mind adding them into your C++ playlist? If so, the new learners will access whole tutorial in the C++ play list and study C++ systematically. Huge thanks!

  • @Jaz_3001
    @Jaz_30018 ай бұрын

    What are your thoughts on the Unity situation?

  • @Michal005
    @Michal0058 ай бұрын

    I've got question to game engine series. I just started following in and I wonder, will you add building projects for platforms like ps, xbox, switch or can you explain how buiding for theese platforms works?💪

  • @charliegnu

    @charliegnu

    8 ай бұрын

    Generally, you need to register with them and get a dev console, then you get access to their SDKs or get the addon you need for game engines like unity and compile for the platform. Each console is different, look up their dev documentation.

  • @Michal005

    @Michal005

    8 ай бұрын

    @@charliegnu thanks🐐

  • @kamertonaudiophileplayer847
    @kamertonaudiophileplayer8478 ай бұрын

    I use Orange Pi headless. Yes, it has ssh, but I use a web interface to control.

  • @panagiotisapostolidis6424
    @panagiotisapostolidis64248 ай бұрын

    what language would be optimal to write a minecraft clone in?

  • @thenotbaldguy4263
    @thenotbaldguy42638 ай бұрын

    Didn't even know this guy had legs😂😂😂

  • @paradox8425
    @paradox84258 ай бұрын

    "I knew that I wanted to deploy this server onto a VPN" I think you meant VPS :D

  • @ArnabAnimeshDas
    @ArnabAnimeshDas8 ай бұрын

    Why not develop the entire backend as a library which you then use to create both the executables? I do it like this in cmake, don't know about visual studio.

  • @toby9999

    @toby9999

    7 ай бұрын

    OMG noooooo, not cmake. Horrible. Gives me nightmares. But yes, you can do that in visual studio.

  • @Meddten
    @Meddten8 ай бұрын

    Are you back in Australia?

  • @vast634
    @vast6348 ай бұрын

    With Unity destroying itself currently, there is a lot more potential for your game engine to take up market share.

  • @divelix2666

    @divelix2666

    8 ай бұрын

    Godot and UE5 are still an option. Hazel is more for education purposes at its current state imho.

  • @razorgmyt6772
    @razorgmyt67728 ай бұрын

    Hello cherno could you try CMAKE it is a replacement or alternative for CMAKE and it is impressive you should take a look at it

  • @u28OO
    @u28OO8 ай бұрын

    It was all in le head

  • @Abon963
    @Abon9638 ай бұрын

    👍

  • @unrealengine5-storm713
    @unrealengine5-storm7138 ай бұрын

    This is what I ask before I date someone. If it's headless it's no bueno for me

  • @turdle2767
    @turdle27678 ай бұрын

    nice thumbnail lol. ive been clickbaited! but i also want to hear the content...

  • @MrHaggyy
    @MrHaggyy8 ай бұрын

    Headless is when you write all your code in one sequence and never really care about design .... Oh oh the other headless. I really like separating graphics from the core of the application. Mainly because in automotive or other vehicle industries you don`t know how your software will be distributed over what hardware inside the physical machine. And that is not only for graphics, there can be many layers depending on the hardware architectures, feature requirements, and what the car manufacturer actually wants.

  • @charliegnu
    @charliegnu8 ай бұрын

    Every Linux application can be headless thanks to Xvfb. Well, at least those that run on an X server, no idea about Wayland 😂.

  • @danielsantiago1128
    @danielsantiago11288 ай бұрын

    backend

  • @glorioussir9673
    @glorioussir96738 ай бұрын

    Zoomers invented terminal programs

  • @toby9999

    @toby9999

    7 ай бұрын

    We had terminal programs in the 70s.

  • @thessalonikiosmusv
    @thessalonikiosmusv8 ай бұрын

    But what about that ghost that got nearly headless, how could you be nearly headless?

  • @lukasjetu9776
    @lukasjetu97768 ай бұрын

    and then roblox just stole it

  • @joysaha3927
    @joysaha39278 ай бұрын

    Fatty cherno looks great ❤️💀