jdh
jdh
  • 31
  • 16 041 598
Programming a multiplayer game from scratch in 7 DAYS
Grab a free 30 day trial and 20% off an annual plan: brilliant.org/jdh/
time for some wizardry
PATREON: www.patreon.com/jdah
TWITTER: jdah__
*** itch link coming soon ! ***
BASIC NETWORK DEMO: gist.github.com/jdah/08eb80c74b13176027c08cbf48b239c9
MACRO WIZARDRY: gist.github.com/jdah/1ae0048faa2c627f7f5cb1b68f7a2c02
THINSG MENTIONED IN THE VIDEO
* networking articles: www.gabrielgambetta.com/entity-interpolation.html
* enter the gungeon levels: www.boristhebrave.com/2019/07/28/dungeon-generation-in-enter-the-gungeon/
GITHUB: github.com/jdah
EDITOR: NeoVim
CONFIGS: github.com/jdah/dotfiles
THEME: gruvbox
RESOURCES:
* OpenGL: learnopengl.com
OTHER VIDEOS:
Minecraft in 48 hours - czcams.com/video/4O0_-1NaWnY/video.html
Building my own graphics card - czcams.com/video/OW1EmG7b4DU/video.html
Building a DOOM-style rendering engine - czcams.com/video/fSjc8vLMg8c/video.html
Tetris OS - czcams.com/video/FaILnmUYS_U/video.html
0:00 Intro
0:20 One week
16:00 Extras
17:11 Outro & Thanks
zhlédnutí: 186 805

Video

4 Months of Game Programming With My Own Engine
zhlédnutí 375KPřed 7 měsíci
next time its 5 months PATREON: www.patreon.com/jdah TWITTER: jdah DOOM RENDERER CODE: github.com/jdah/doomenstein-3d GITHUB: github.com/jdah EDITOR: NeoVim CONFIGS: github.com/jdah/dotfiles THEME: gruvbox RESOURCES: * learnopengl.com * DOOM Game Engine Black Book: fabiensanglard.net/gebbdoom/ * Michael Abrash's "Graphics Programming Black Book"
Programming portals for my DOOM-style FPS
zhlédnutí 194KPřed 11 měsíci
obsolete C programmer copies valve (15 years too late) PATREON: www.patreon.com/jdah TWITTER: jdah C LIVE RELOADING: github.com/jdah/reloadhost EXAMPLE SOFTWARE RENDERER: github.com/jdah/doomenstein-3d GITHUB: github.com/jdah EDITOR: NeoVim CONFIGS: github.com/jdah/dotfiles THEME: gruvbox RESOURCES: * Portals in OpenGL: github.com/ThomasRinsma/opengl-game-test * @SebastianLague 's v...
Programming a first person shooter from scratch like it's 1995
zhlédnutí 1,3MPřed rokem
3D like you've never seen it before! PATREON: www.patreon.com/jdah TWITTER: jdah CODE: github.com/jdah/doomenstein-3d GITHUB: github.com/jdah EDITOR: NeoVim CONFIGS: github.com/jdah/dotfiles THEME: gruvbox RESOURCES: * DOOM Game Engine Black Book: fabiensanglard.net/gebbdoom/ * @Bisqwit 's video: czcams.com/video/HQYsFshbkYw/video.html * Fabien Sanglard's "Build Engine Internals": f...
How NOT to make a game from scratch
zhlédnutí 270KPřed rokem
a different kind of video this time PATREON: www.patreon.com/jdah TWITTER: jdah * Jonathan Blow - Truth in Game Design: czcams.com/video/C5FUtrmO7gI/video.html * Stream clip: czcams.com/video/w7W3xM2tzRA/video.html GITHUB: github.com/jdah EDITOR: NeoVim CONFIGS: github.com/jdah/dotfiles THEME: gruvbox 0:00 Intro 0:14 What went wrong? 1:25 Prototyping 2:12 Mechanics 3:05 Design comes...
I added reflection to C++ just to make my game work.
zhlédnutí 256KPřed rokem
"it will all be worth it", i tell myself after fixing the 8th of 20 broken tests. CODE: github.com/jdah/archimedes TWITTER: jdah PATREON: www.patreon.com/jdah GITHUB: github.com/jdah EDITOR: NeoVim CONFIGS: github.com/jdah/dotfiles THEME: gruvbox RESOURCES: cppreference.com/ learnopengl.com opengl-tutorial.org shadertoy.com stackoverflow.com 0:00 Intro 0:36 The Ideal 3:18 Plans A to...
Why I use Wave Function Collapse to create levels for my game
zhlédnutí 261KPřed rokem
this was so much work i'm about to (wave function) collapse sorry I used the terms "element", "cell", and "pixel" interchangeably :c they all mean the same thing! SEE THE CODE (utilities, etc. coming soon!) gist.github.com/jdah/ad997b858513a278426f8d91317115b9 Oskar Stålberg's visualization tool: oskarstalberg.com/game/wave/wave.html Thanks to Maxim Gumin for the original implementation of WFC:...
How does a custom game engine work? // Code Walkthrough
zhlédnutí 172KPřed rokem
big nerd explains his C game engine and says "um" a lot. SEE THE MAIN VIDEO: czcams.com/video/ZcjKWbjZi-Y/video.html TWITTER: jdah PATREON: www.patreon.com/jdah GITHUB: github.com/jdah EDITOR: NeoVim VIMRC: gist.github.com/jdah/4b4d98c2ced36eb07b017c4ae2c94bab THEME: gruvbox RESOURCES: cppreference.com/ learnopengl.com opengl-tutorial.org shadertoy.com stackoverflow.com 0:00 Intro 1...
3 Months of Game Programming in 20 Minutes
zhlédnutí 589KPřed rokem
3 Months of Game Programming in 20 Minutes
Building my indie game: one month of progress
zhlédnutí 272KPřed 2 lety
Building my indie game: one month of progress
Building the new 3D engine for my game
zhlédnutí 213KPřed 2 lety
Building the new 3D engine for my game
I programmed Minecraft from scratch... again.
zhlédnutí 551KPřed 2 lety
I programmed Minecraft from scratch... again.
BONUS: How I built my own computer, from scratch
zhlédnutí 109KPřed 2 lety
BONUS: How I built my own computer, from scratch
I built my own computer. by hand.
zhlédnutí 1,2MPřed 2 lety
I built my own computer. by hand.
it works
zhlédnutí 139KPřed 2 lety
it works
I built my own graphics card
zhlédnutí 1,5MPřed 2 lety
I built my own graphics card
I designed my own 8-bit computer just to play PONG
zhlédnutí 680KPřed 2 lety
I designed my own 8-bit computer just to play PONG
I made an entire OS that only runs Tetris
zhlédnutí 1,6MPřed 3 lety
I made an entire OS that only runs Tetris
Making my web game engine
zhlédnutí 222KPřed 3 lety
Making my web game engine
I'm making my own indie game
zhlédnutí 117KPřed 3 lety
I'm making my own indie game
Remaking MINECRAFT 2D (Minicraft)
zhlédnutí 307KPřed 3 lety
Remaking MINECRAFT 2D (Minicraft)
Adding infinite build height and colored lights to my Minecraft engine
zhlédnutí 514KPřed 3 lety
Adding infinite build height and colored lights to my Minecraft engine
Making Minecraft from scratch in 48 hours (NO GAME ENGINE)
zhlédnutí 4,5MPřed 4 lety
Making Minecraft from scratch in 48 hours (NO GAME ENGINE)

Komentáře

  • @callmezorkkk
    @callmezorkkk Před 6 hodinami

    what font ur vscode?

  • @blehmeh9889
    @blehmeh9889 Před 6 hodinami

    I'll be honest, I'm a year late, but I figured out in my head where this project would go if it were designed more so as an actual game with a primary core gameplay loop rather than an awesome game engine. It's a little sad to see this idea die out because I believe it has a heck of a lot of potential. PREMISE: Humanity is attempting to explore the stars and colonize other worlds. They have their targets set on worlds, caves, moons, and other places with no atmosphere or life support(or worse, a toxic atmosphere). Their goal is to terraform these worlds to support human life, but it's dangerous to send humans to do this for obvious reasons. The solution: send a robot botanist (robotanist!), which can thrive in a wide variety of environments that would quickly kill a human, with the goal of establishing a small terraformed foothold in a part of the moon, planet, mega asteroid, or whatever else where a colonist team can safely land a drop pod and continue expansion from. Primary Core Gameplay Loop: You drop in a randomly generated cave or area. Your robot analyzes the atmosphere constantly and assesses its ability to support life, based on earth-like biological needs and an ecosystem (temperature, atmosphere, and the food chain; humans need a viable living temperature, they need to breathe the right mix of air like on earth, and they will need to find something to eat, and that something to eat will likely exist as part of a larger ecosystem of various plants and perhaps even animals). Your robot will walk around and scout out natural "energy sources" that can support the most basic forms of life (plants, cells, bacteria, etc). These energy sources could be things like ceiling shafts in the cave that let sunlight in, ongoing underwater chemical soup reactions that go for a long time and put out chems and heat, or geological heat vents that put out heat and gasses. Then, you would need to collect seeds and other items that could create life, and plant them just right near these energy sources to create basic life. These basic life forms would then be able to germinate and spread, perhaps on their own or perhaps if the player intervenes. Each plant and lifeform would alter the living conditions of the area over the course of its life that propagate, and these effects would become stronger as the lifeform spreads and multiplies. The eventual goal would be to set up a self-sustaining ecosystem that happens to produce living conditions that human colonists could work with to further terraform other neighboring caves or the rest of a planet after they arrive. To reiterate: the player would drop in the area and first search for energy sources and seeds/proto-life forms that they can plant to exploit these energy sources. They would gather those and begin using them to spread life off of the basic energy sources. After establishing a significant population of life would come the puzzle of carefully balancing out the populations and relations of these parts of an ecosystem to fine-tune an environment to the point a human could comfortably live in it. Complications/losing conditions for the player: you could have human arrival on a timer of some kind. It could be real-time all the way, or it could be abstract with time being more like a resource that you can choose to spend. For instance, you could have a system where humans won't arrive for x number of years, but the way the game would work is the robot would wake up, perform some actions that will take time to have an effect, and then the player would hit a button to make the robot "hibernate" for a certain amount of time in order to get the plants/bacteria growing before moving on to the next step or adding another component of an ecosystem. Another option for this: robots have needs too, though not the same needs as a human. Perhaps you must also build energy infrastructure for your robot, perform repairs when parts wear out, etc. This would introduce an element of balancing the objective primary core gameplay loop with a gameplay loop of survival and sustaining oneself. The robot can't do it's job if it runs out of power and gets stranded in some dark corner of the cave, or if it gets destroyed by a nasty fall. Tertiary gameplay loop: When the humans arrive, they show up with emergency life support equipment that would allow them to live in a hostile environment. This is a backup plan for if the robot fails or doesn't finish the job. So, they set up shop and attempt to live in the environment you curated. If you did a good job, they are able to do this easily and end up not needing the redundant emergency equipment they brought with them, so they scrap it and let you have it. You can then use high quality components from this equipment to upgrade your robot's systems. By contrast, if you can only get an area partway to habitability before the humans arrive, the humans find ways to finish the work that you started when they arrive, but they must live off the emergency equipment while they do so. By the time they feel safe scrapping it, the parts are worn and provide less significant upgrades to your robot than if they were unused. This creates a motivation to master the primary and survival core gameplay loop in exchange for gaining new upgrades to approach those loops differently. Other features that could help the game once a viable and fun prototype is polished: - Coop multiplayer mode: multiple players controlling multiple robots and working together to stabilize an area. This increases the "demand" for player resources like power for the robot, but also increases how much can get done within a certain time and the variety of upgrades and playstyles that can be brought into a cave. - Lore and story, perhaps even different than the premise I implied - A chill electronic soundtrack - Numerous types of cave or environment to explore

  • @DookPot
    @DookPot Před 7 hodinami

    This guy is smart af. Teach us your ways.

  • @LearnAgon
    @LearnAgon Před 13 hodinami

    Amazing 🎉

  • @AmazingAmbro1
    @AmazingAmbro1 Před dnem

    13:08 sounds weirdly in sync with the bg music

  • @Fromyoutube640
    @Fromyoutube640 Před dnem

    СТРОЙ КАК ДПЯ СЕБЯ Подарим Радость Новоселам

  • @user-fh1mx6pz3r
    @user-fh1mx6pz3r Před dnem

    nice shane dawson

  • @over_kill
    @over_kill Před dnem

    huh?

  • @sethieboygaming
    @sethieboygaming Před 2 dny

    I wouldve added Herobrine in it

  • @yahiah.farouk4561
    @yahiah.farouk4561 Před 2 dny

    it's old video , but i need to know how can i be in that level of programming ?

  • @NAMEHUKUI
    @NAMEHUKUI Před 2 dny

    minecraft beta ,

  • @alanhurdle3949
    @alanhurdle3949 Před 2 dny

    Yes that what I am doing, a hard wire computer I like it thanks second best video on it I looking for the other one

  • @XXDEATHGR1PXX-bf1em

    This guy is a fucking masochist

  • @LasTCursE69
    @LasTCursE69 Před 2 dny

    Man I wish I can write half as good someday gj

  • @TheReequiem
    @TheReequiem Před 3 dny

    proof you don't need TDD in your life lol

  • @gpazz66
    @gpazz66 Před 3 dny

    Jim Browning?

  • @LetsPlaysOfGerman
    @LetsPlaysOfGerman Před 4 dny

    Some of 2024👇

  • @user-fo2jf3gq9l
    @user-fo2jf3gq9l Před 4 dny

    Exodus 20:3-7 “You shall have no other gods before me. “You shall not make for yourself an image in the form of anything in heaven above or on the earth beneath or in the waters below. You shall not bow down to them or worship them; for I, the Lord your God, am a jealous God, punishing the children for the sin of the parents to the third and fourth generation of those who hate me, but showing love to a thousand generations of those who love me and keep my commandments. “You shall not misuse the name of the Lord your God, for the Lord will not hold anyone guiltless who misuses his name.

  • @user-fo2jf3gq9l
    @user-fo2jf3gq9l Před 4 dny

    1 Peter 3:8-22 Finally, all of you, be like-minded, be sympathetic, love one another, be compassionate and humble. Do not repay evil with evil or insult with insult. On the contrary, repay evil with blessing, because to this you were called so that you may inherit a blessing. For, “Whoever would love life and see good days must keep their tongue from evil and their lips from deceitful speech. They must turn from evil and do good; they must seek peace and pursue it. For the eyes of the Lord are on the righteous and his ears are attentive to their prayer, but the face of the Lord is against those who do evil.” Who is going to harm you if you are eager to do good? But even if you should suffer for what is right, you are blessed. “Do not fear their threats; do not be frightened.” But in your hearts revere Christ as Lord. Always be prepared to give an answer to everyone who asks you to give the reason for the hope that you have. But do this with gentleness and respect, keeping a clear conscience, so that those who speak maliciously against your good behavior in Christ may be ashamed of their slander. For it is better, if it is God’s will, to suffer for doing good than for doing evil. For Christ also suffered once for sins, the righteous for the unrighteous, to bring you to God. He was put to death in the body but made alive in the Spirit. After being made alive, he went and made proclamation to the imprisoned spirits- to those who were disobedient long ago when God waited patiently in the days of Noah while the ark was being built. In it only a few people, eight in all, were saved through water, and this water symbolizes baptism that now saves you also-not the removal of dirt from the body but the pledge of a clear conscience toward God. It saves you by the resurrection of Jesus Christ, who has gone into heaven and is at God’s right hand-with angels, authorities and powers in submission to him.

  • @cryostice
    @cryostice Před 4 dny

    W oldhead mentality

  • @rusumihai3553
    @rusumihai3553 Před 4 dny

    why would u use a mac for coding games , mac os not good for gaming

  • @Stravioska
    @Stravioska Před 5 dny

    wolf>doom>quake> now do half life

  • @thicc10
    @thicc10 Před 5 dny

    Hey, how come some of the colors are different in your neovim setup? I use the same gruvbox theme and stuff like typedefs and datatypes has another color...

  • @Em0L0rd
    @Em0L0rd Před 5 dny

    Chad neovimer found

  • @youtuber-tg1pu
    @youtuber-tg1pu Před 5 dny

    Yeah ... coding is so tedious.

  • @derin3322
    @derin3322 Před 5 dny

    better than cs2 already

  • @vandorlokronika9581

    Are you using Neo Vim as your editor? If so what distribution is this? Lunar Vim? NvChad?

  • @mentalyunstable2872

    Bro chose 1995 style game instead of among us dating sim 😭

  • @0lsza
    @0lsza Před 6 dny

    Oh my fucking god. For 12 hours that is INSANE

  • @sillycat-wiiu
    @sillycat-wiiu Před 7 dny

    Wow!

  • @Anonymous-fr2op
    @Anonymous-fr2op Před 7 dny

    Why dont you make Rollercoaster tycoon?

  • @StelznerGaming
    @StelznerGaming Před 7 dny

    "Look like a giraffe" yes.. umm thats what I was thinking as well.

  • @Trunts_
    @Trunts_ Před 8 dny

    the 8 bits of ram gonna be crazy

  • @jangosch8647
    @jangosch8647 Před 8 dny

    Funny thing with the DMCA takedown. The Tetris company is not mad because you copied the game or the music (the whole takedown notice doesn't mention the word "game" once) but because you called it Tetris-OS!!. The whole notice is only complaining about an Operating System and how this could be confusing to the consumers. I think they are afraid that people could put this OS on their computer, trash their bootloader and then blame Tetris.

  • @SpencerYonce
    @SpencerYonce Před 8 dny

    Man, I’ve been in a bit of a rut the past 6 months of my game engine, and seeing you make loads of insane progress on this totally has inspired me to get back into game engine dev. Ps, I’d pay for your game, 10000%

  • @bonekazz-8441
    @bonekazz-8441 Před 9 dny

    Bro please make tutorials

  • @fakestiv
    @fakestiv Před 9 dny

    I've tried to tinker with the in-depth explanation of the "trick" because I had never delved too much into C macros, but it looks like it doesn't work if any of the ???_FIELDS macros tries to pass more than one field name... It makes sense, because DO_FIELD_DESC expects exactly two arguments, one of which already passed in since it's the struct's type, but I don't know if I'm missing something. It looks like "fields" is supposed to hold more than one field, but I don't see how it could be possible for ???_FIELDS to expand to more than one... Unless rewritten, but how would you go about that? Would you have to write a recursive version that extracts one parameter at a time until a different macro is expanded because only one field is left? Is macro overloading even a thing?

    • @jdh
      @jdh Před 5 dny

      ah i can see how that might be a little confusing from the example - each ???_FIELDS macro can have multiple lines after each (each for one field), like _F(field1, __VA_ARGS__) \ <newline> _F(field2, __VA_ARGS__) and so on. The important thing is that “_F” is expanded for each field name :)

  • @affanyunas7693
    @affanyunas7693 Před 10 dny

    Thank you for accompanying me to sleep

  • @rxcvgame5718
    @rxcvgame5718 Před 10 dny

    RIP github repo

  • @xerathgaming1915
    @xerathgaming1915 Před 10 dny

    cant wait to play this game

  • @jawad9757
    @jawad9757 Před 11 dny

    can't believe you didn't implement the game in fortran

  • @alyx6427
    @alyx6427 Před 11 dny

    idk if it’s a technological breakthrough but it’s fucking impressive

  • @danius_huganius
    @danius_huganius Před 12 dny

    jdh, this is the fifth time you present a game made from scratch in this class

  • @boobs-butt
    @boobs-butt Před 12 dny

    Is it possible to reverse engineer a nvidia GTX 4090 ? :D

  • @lunchdotbox
    @lunchdotbox Před 12 dny

    Me when it crashes: arcimedes no!!!!!

  • @homescriptone
    @homescriptone Před 12 dny

    Who had a copy of the bootloader ?

  • @samarthbelani
    @samarthbelani Před 12 dny

    how can i learn all these

  • @PeopleHaveNoGender
    @PeopleHaveNoGender Před 13 dny

    The Wizard has AI that is meant to "end you quickly". Does that mean he throws sword pommels at the player?

  • @TheGloriousMoron
    @TheGloriousMoron Před 13 dny

    I started learning CPP and now I'm working on my own games to learn how. Very cool person you are

  • @mrattapuss
    @mrattapuss Před 13 dny

    holy shit this is incredible