Take a shot every time jdh starts a game from scratch
@jdh9 ай бұрын
quick way to get alcohol poisoning
@siteking42899 ай бұрын
@@jdh Hard mode: When he implements shit on his own and trying to reinvent the wheel rather then using a robust library
@Finkelfunk9 ай бұрын
@@siteking4289 So basically continue drinking constantly?
@sir_chaotic9 ай бұрын
You're dead. No big surprise.
@domeen0gt8959 ай бұрын
@@siteking4289 Tbh I can kinda respect his determination.
@onlysmiles49499 ай бұрын
Honestly, the idea of enemies being able to light their loot drops on fire before they die is really funny ngl
@timecubed8 ай бұрын
I feel like there could be reasoning behind loot drops being set on fire/carrying whatever status effects the enemy had before dying. Like the spell affects the enemy *and* whatever it's carrying too
@HexaflexagonFan8 ай бұрын
It could be a decent balancing technique
@TheVestinius7 ай бұрын
its a feature. not a bug :)
@ViktorSarge9 ай бұрын
Dude. You make it look reasonable and almost easy implementing things from scratch in C. That's a feat in and of itself.
@Nick-yq5uz9 ай бұрын
After he added serialization to C++ I’m convinced he can do anything.
@0x5DA2 ай бұрын
not to undermine his talent but modern C isn't so crazy.
@clintonhawkins86669 ай бұрын
I think the flaming coin bug should definitely stay!
@cometeova9 ай бұрын
Exactly - my first thought when I saw that part was "Is this a bug, or a feature?"
@HisVirusness9 ай бұрын
Don't feel bad about starting a project, getting so far that it's almost complete, and then getting sidetracked and starting something new. It happens to the best of us.
@cluelessadc9 ай бұрын
this guy is the best of us
@wildmaknae_7 ай бұрын
im an artist and feel so called out rn x)
@robinHobin7 ай бұрын
It says in the vid for a split second he is still working on the cos but has nothing interesting to show rn
@keshi55417 ай бұрын
Artists be the exact same 😂😂
@Dollar_CoinYT3 ай бұрын
I feel like he is trying out multiplayer to try to add it to the other game
@btarg19 ай бұрын
Writing network code without libraries looks incredibly complex. Love every devlog! I really admire the dedication to the bit with using no libraries even when it's an active hinderance lol
@jdh9 ай бұрын
active hinderance or learning experience? you decide!
@robinHobin9 ай бұрын
Both@@jdh
@SolarShado9 ай бұрын
@flaviog141 Eh, I duno if invoking POSIX syscalls directly really counts as "a library"... I suppose it technically counts, as it is part of the C standard library, and it's not like directly bit-banging raw network packets at the NIC over the PCI bus, but still... And building something useful on top of raw buffers may not the terribly difficult (especially with some experience under your belt), but it's not exactly trivial either, especially in just a day or two.
@atiedebee10209 ай бұрын
@@SolarShadoit's not part of the C standard library
@SolarShado9 ай бұрын
@@atiedebee1020 Ah, fair nitpick! Technically the networking API used here is part of POSIX, not part of _the_ standard C library. I probably conflated them because I mostly know about them via Linux, where both APIs are typically provided by glibc.
@divine2039 ай бұрын
I absolutely love your approach to game dev. Whenever i feel burned out from working on a project. I just watch your videos for motivation. Splendid work as always ❤
@danielgysi57299 ай бұрын
The things you did in a week would've taken me at least a couple months. Your talent and work ethic are amazing
@spaghettiking6539 ай бұрын
9:31 Wtf, don't just say you casually made the entire UI look that good in half an afternoon! This is incredible, I can barely make so much as a menu that works, let alone something this pretty.
@buildgameswithjon76419 ай бұрын
I literally said "no you didn't" seconds after that time stamp lol
@spaghettiking6539 ай бұрын
@@buildgameswithjon7641Samee
@lukasnick55119 ай бұрын
it is so impressive how you manage to pull off programming a working multiplayer game in such a short time!! I really admire your work!!:)
@spluf10819 ай бұрын
i never comment on videos but holy moly man ! you covered a good chunk of topics from 2 courses which i had this semester in a 1 week, gracefully, from scratch and made it look easy !! i know how much i struggled when understanding packets (we wrote a program for processing, NAT translation and portforwarding) but seeing you do it from 0, make everything multithreaded and not drop packets from host to player is insane, well done :)
@petlahk41194 ай бұрын
As a person thinking about what I want to learn next, what were those two courses?
@hedwig7s9 ай бұрын
1 week? Good lord that's very impressive good job man
@justinj08242 ай бұрын
Watching Dani make games then watching JDH make games is actually the funniest juxtaposition ever
@lilium7249 ай бұрын
The concept of sending the player position directly to the server is also how Minecraft handles multiplayer. The way they (try to) prevent hacking is by only checking a few edge cases on the server side to prevent obvious cheats, like if the distance between the old and new position is too big, you get sent back, or if your vertical speed is 0 for too long even though you're not standing on a block, you get kicked out.
@vitao959 ай бұрын
The monster loot catching on fire is some real dwarf fortress material. Great video and project as always!
@Baaqel9 ай бұрын
The speed of light is unknown in 1 direction, at 7:00 the diagram shows that it takes 100ms to travel to the server and 100ms back to client. Theoretically it is equally as possible that it could take 199ms to send to the server and 1ms to send it back, or any numbers that add to 200ms. Just think it’s kinda interesting and wanted to share
@ezrakornfeld84369 ай бұрын
Ok yes but that’s a theory. Occam’s razer.
@Baaqel9 ай бұрын
@@ezrakornfeld8436 Yes, it’s only a theory, but even Einstein says that the speed of light and clock synchronization is only defined by convention, rather than a measurement. I agree that the most simple explanation to our understanding would be for the speed to be the same, but it’s interesting to me that this principal that is base to our understanding of the universe isn’t fully understood.
@jdh9 ай бұрын
for sure! my example was definitely a bit contrived
@eDoc20209 ай бұрын
The speed of light doesn't really matter, just the speed of packet transmission. Over the Internet it's very likely that the packets each way are taking different paths.
@Baaqel9 ай бұрын
@@eDoc2020 The time it takes for a packet to reach a server from a client is unknowable. No matter the path it takes or the distance it travels, it can only be assumed or measured when the server sends a packet back to the client. It’s not really important to this video though
@iamjessieray9 ай бұрын
I honestly don't know why, but I love watching every video you do. It scratches some part of my brain that wants to do stuff like this but that I don't have time to do because of working and having too many other things I want to do. It does give me some inspiration to actually work on the programming projects that I am actually working on though.
@idjles9 ай бұрын
You need synergy spells where one wizard does a fire spell and the second wizard does an aspect - these then combine to attack an opponent. You could have scissor-paper-stone on fire-air-water and pulse-quick-slow aspect. This requires you to know the enemy and coordinate on spells. Or one casts a region spell that the other casts into. You could have probe spells that test the features of the enemy. When two enemies are close they enhance or disable each other. You could have bosses that shift aspects over time or in response to particular spells. Powerups to shift aspect/element. You could also have a-b-c combo spells where you cast a, partner casts b and the you cast c - knowing that a-b-c does extra damage/freeze to enemy.
@JordanDeMexican9 ай бұрын
This comment needs more likes 👍
@Gavinwasalmostcool9 ай бұрын
I was just checking your channel yesterday to see if you'd uploaded. I'm very excited to watch this one
@eboatwright_9 ай бұрын
This is awesome! I've been watching since the Minicraft remake, and your stuff just gets better and better! Your FPS game is looking amazing, and I actually really love the main menu for this one lol
@goddtriffin9 ай бұрын
Building from scratch like this honestly feels more sane than using libraries. It really doesn’t have to get any more complex than using send() and recv().
@nulifyer44609 ай бұрын
One of the few places I can come to see games written at this low level, thank you for your content and hard work!!!
@RossWasTakenАй бұрын
When jdh doesn't upload for 7 months, you know a banger in the works
@Bozebo9 ай бұрын
Good job. I had to write a paper on this "Fast Action Multiplayer in P2P Networking Over Mobile Connections" or something. A bit of reliability over udp (tip: bitfield of acks n packet count and back), sub message resending with classifications (lossy, priority, etc.), host change resyncing, hole punching, matchmaking, relay fallbacks, some spline extrapolation (first network tracking entity movement as paths over keyframes synced by time then again in opengl renderer thread), exponentially smoothed average on the latency, fun times xD
@jdh9 ай бұрын
sounds interesting! Though I didn't mention it, I used TCP for this in the interest of not wanting to handle all of those things but if this networking backend gets used elsewhere (maybe in a fast paced retro FPS who knows) then I'll definitely want to make the switch over to UDP and handling the reliability issue myself. Do you have any good links to papers/resources/etc.?
@skeezixcodejedi3 ай бұрын
*drums fingers* *waits around meme* Hope you've progressed some of your projects and are slowly get rich, but we await your wonderful brand of video :)
@bkucenski9 ай бұрын
Using a buffer for data going in an out and then parsing messages in bulk makes TCP/IP super happy. It's a streaming protocol, not a messaging protocol. Your header can be used to see if you have a complete message or need to just let the program do other things and check again when it's done processing game logic. If 100 messages come in between frames and you process them all at once, your game appears to be much smoother. And you can break actions up between multiple messages simplifying your game code.
@jdh9 ай бұрын
yep that's what's going on for this game! I didn't have time to show the ~2-3k lines of packet handling/serialization/netcode here but basically the packet buffers (a big loop that send()s outgoing packets and recv()s incoming packets asynchonously, (de)serializes them, and dumps them into a buffer) run on a separate thread and then the client/server process/apply them when they have time to keep the simulation running smoothly on both sides
@jdh9 ай бұрын
when either client/server enqueue a packet, the packets are pushed onto a thread-local buffer which is flushed (copied over to the packet handling thread) at the end of each frame (for the client) or the end of each tick (for the server) so it doesn't get in the way of anything else
@alfredenglund8 ай бұрын
Im on my last term of my second year at a master's programme in computer and information engineering and this video was an absolute blast. I was surprised with how much I understood of all the really techy/nerdy stuff, and it was just really cool to see how everything was implemented. I would love to see more of the engine programming and implementation though.
@Stoolan-nd3gn3 ай бұрын
I am going into 9th grade next year and am doing AP computer science and up until I started watching this guys videos I thought I knew a thing or two about programming. After watching these videos I am in utterly disbelief that one can even do any of these tasks the things he does are absolutely insane.
@madman63613 ай бұрын
ap comp sci freshman year? good luck man!
@Wyklepheph6 ай бұрын
I helped with a macro to enable authoritative servers for an RPC library written in Nim. All the actual netcode works on a custom implementation of UDP that keeps the packets in order and resends dropped packets. It works pretty damn well. It’s actually insane; the macro creates all the boilerplate on the client and server so that a client can call server functions and the server can call client functions. The dude who wrote the base library is a very smart dude, I learned a ton
@Wow-wk7eu9 ай бұрын
You are a great inspiration to me as someone learning to code. Great vid and congrats on that sponsorship
@Thzyr9 ай бұрын
wake up hun, hes back.
@aserta9 ай бұрын
He's about to cook for the whole family!
@domeen0gt8959 ай бұрын
I'll get the broom...
@d_009 ай бұрын
Your videos are so well done, I've watched some of them more than multiple times, and now your editing has improved too! Really great content, you inspired me in many different ways and I hope you'll continue to do so for everyone that gets the chance to know you.
@doggo_idk9 ай бұрын
great video as always, to show input lag, assuming you are using OBS (and not a screen recorder you made from scratch), you can use the same plugin that streamers use to show their keypresses. either visualy or by text.
@M_BRINE_859 ай бұрын
Please continue this game it has so much potential
@C_J_Patto6663 ай бұрын
love the video! as the first vid of your channel ive seen it really hooked me in and i cant wait for whatever comes next. do you have any rough estimate of an itch publish?? i really want to play this
@magnusfrlund16059 ай бұрын
You its a good day when jdh uploads
@aziwii40529 ай бұрын
I'm in awe after discovering this channel. I'm taking cs in university right now, and I'm just curious how and where you learned all of this stuff. It absolutely baffles me. I would love to see a video of your journey through coding, math, development, etc. Or I guess you could just reply to my comment lol
@neverix_36009 ай бұрын
This is insane, you'r an inspiration to me and i can only hope to come close to this level of expertise!
@stevemcwin9 ай бұрын
Finally jdh finishing a game. Entertaining video as always, hope you make more soon!
@FallKK9 ай бұрын
Seeing stuff like this inspires me to be a better developer. I love C but only ever just do web backend for work. I'd love to get more into things like this
@Diamonddrake9 ай бұрын
As a fellow software engineer it’s impressive what you’re able to achieve in such a short time. We all say we can do things in a week, seldom does anyone produce something that looks this good in twice the time.
@btarg19 ай бұрын
FINALLY! been waiting for another video forever!
@R1fleman9 ай бұрын
your crazy good some people cant even make a multiplayer game with a game engine and you made it without a game engine
@Ketpain9 ай бұрын
As someone getting started with programming and taking a long time to grasp things. I feel like jdh be flexing on me .. 😢 Good video! 👍
@mdnghtppl00009 ай бұрын
I was just hopin for a vid from u soon, great timing
@keaganrice86569 ай бұрын
Status effects applying to everything sounds like a fun idea. I'm a firm believer in multiplayer games giving you the ability to screw over your teammates (and yourself). Works really well in Lethal Company.
@gbpferrao4 ай бұрын
dude it looks so beautful its pleasing to just look at it
@vaxaop78389 ай бұрын
The game actually looks fun, and this video was really instructional. Thanks a lot jdh for your amazing content!👍
@ValDominator9 ай бұрын
the scope creep is incredible
@krammehl9 ай бұрын
Cudos to you for writing your own netcode! I bit the bullet and wrote my own networking engine after years of dealing with a buggy library. Can recommend.
@icantstopsuffer9 ай бұрын
13:50 this bug 🔥🔥 really would like to see it as real mechanic in some game
@oldgangster41199 ай бұрын
Thats what i thought, its a feature 😂
@BananaMan67633 ай бұрын
This is one of the channels I have subscribed to because what they do seems very impressive and awesome to me, even though(especially for this channel) I don’t understand most, if not, anything talked about.
@davidbasilefilho9 ай бұрын
please continue the last video's project!! it looks so damn good and fun
@danius_huganius6 ай бұрын
jdh, this is the fifth time you present a game made from scratch in this class
@marsimplodation9 ай бұрын
I can 100% relate the pain in the networking part of the video, I atleast had unity to deal with the complex stuff, but I feel you
@OneLabToRuleThemAllАй бұрын
The recipe joke at the beginning is just beautiful
@artvandelayimports9 ай бұрын
Starting a new project is common but at least you’re achieving some of the core goals for each project you make, that’s all that really matters. I remember following this other KZbinr who’s been working on a game since 2016. They just keep reworking and rewriting their game base instead of making progress on the game as a whole. For a while, they got so distracted from making their game that they started creating a new programming font and customizing an open source editor, blaming their existing tools for their slow progress. Stopped following them a few years ago but I’d bet they’re just rewriting their game base again
@4F6D9 ай бұрын
Talking about Randy huh?
@GuildOfCalamity9 ай бұрын
Super cool, getting a real Gauntlet vibe from this.
@xanrerkazuki99299 ай бұрын
Unique enemies with random stats would be a cool addition and a challange.
@Lolboy309 ай бұрын
i just like to program little games as a hobby, i am 100% self taught and after struggling to understand how to serialize non-basic types for a while now this motivated me to search for answers again - if you or anyone in the community have any input on that it'd be highly appreciated, and thanks for the motivational boost!
@no-one37959 ай бұрын
This could be a great multiplayer roguelike game.
@soupnoodles9 ай бұрын
Remember guys this is the same person who said the internet was an unnecessary dependency Awesome work as always, your videos are always so mesmerizing to watch. You shoulda released at least a dummy version before you quit this project too, we could have at least tried it :(
@abyssaltheking9 ай бұрын
love your stuff, man, even if i have no clue what you're doing, lol you mentioned the fps game, and it looked cool in the last devlog, so im curious on how it's going
@ShotgunLlama9 ай бұрын
That macro sorcery was by far the most interesting thing I've seen in the past 60 minutes
@Catherine-m2p9 ай бұрын
YAY i just got re-obsessed with you thats such good timing
@abrarmasumabir38099 ай бұрын
please make a video about your setup! Your vim looks really awesome for c++
@robinou219 ай бұрын
Congratulations, and thanks for the video, it’s amazing
@crefelder19 ай бұрын
This is impresive. I am working a lot currently in SDL, but need more time for it. For network stuff i would try it with a common lib.
@BasedG236 ай бұрын
Dude how on earth did you learn to code this well. My brain can’t even fathom.
@venilc9 ай бұрын
you scare me with what you're doing. you make me feel dumb with what you're doing. and i love it.
@Arcade_Archie9 ай бұрын
Any sufficiently advanced bug is indistinguishable from a feature. ~Rich Kulawiec
@zoeythebee17799 ай бұрын
Omg mental health problems can wait JDH POSTED!!!
@divine2039 ай бұрын
😂. He's dat important?
@truestprophecy5 ай бұрын
you are basically the best programmer that I am aware of.
@Storm_VLRT9 ай бұрын
The pixel art is actually so pretty
@tumbleweb7 ай бұрын
15:50 Would have been funnier to give yourself an 8/10 since its IGN
@EranStockdale9 ай бұрын
Nice work! This looks really fun :P
@xoanaraujo9 ай бұрын
Your skills are amazing, loved it
@oglothenerd9 ай бұрын
Honestly, you should try Rust. The macros there are pretty awesome! :D There are people who have made Rust macros that are themselves programming languages, and even through compiler errors just like anything else! Rust also has a really solid type system. Another awesome language for the C purists is Zig. Zig also uses more Zig code to write Zig code instead of a macro system. Rust is also memory safe and thread safe without anything gross like a garbage collector. It uses compiler rules to make sure no memory leaks happen. The thread safety also uses the trait system to implement a Sync and Send trait on some datatypes.
@catriverr9 ай бұрын
Program this. If you upload within the next 2 months I'll become a patreon member.
@JaniEU9 ай бұрын
Nice video as always, I have no idea how C works and no idea what anything you say means but your videos are still entertaining
@sillygaby_9 ай бұрын
man you have inspired me to do so much stuff, this channel is like a gem in a pile of shit that is modern youtube
@philosophiabme9 ай бұрын
hey man, you're pretty good at this stuff
@randomgoose26069 ай бұрын
for so little days of work that looks really sick
@INsanityDesign9 ай бұрын
A new vid by the GOAT ^^ I will just bury myself in awe, picking up my jaw after it dropped . . . I am too stupid for the world... But you sir, please continue to be awesome :)
@Retrosen9 ай бұрын
bro is a complete menace in programming
@rafaaaaaze7 ай бұрын
Looks really cool, great job!
@SlothFang9 ай бұрын
Coin bug should be turned into a feature. Allow the zombies to take damage from the fire coins!
@HarhaMedia9 ай бұрын
That's an incredibly productive week!
@bloodsmithgamer50713 ай бұрын
Dude... You've inspired me to start what is probably a completely inane project, given how little experience I have with C. Daggerfall clone (on a small scale) using SDL 1.2 and OpenGL 1.5 😅
@animeturd22809 ай бұрын
He’s baaaack it’s almost been a year or 2 or 1000
@PseudoCode10909 ай бұрын
Itch, link ! Itch, link !
@CaptainDouchie2 ай бұрын
i am really inspired by you sir, could you make a video on how u even go about learning all these sort of stuffs in order to build all the projects u had been doing from scratch?
@Voidkitty_9 ай бұрын
No one: JHD: I'm bored time to create a game from scratch in c in an arbitrary deadline that is way too short
@dailydoseofshtposts68919 ай бұрын
I absolutely love you sp much❤❤ cant belive you gave us a will to live again🎉
@PaGow9 ай бұрын
That game looks hella fun!
@ThePoinball9 ай бұрын
Dude I want to play That Game!
@clonkex9 ай бұрын
This is incredible impressive! And you've discovered why pvp networking is so ridiculously difficult. It's physically impossible to create perfect netcode but players think it should be perfect so you will be crucified no matter which tradeoffs you make. Of course, sometimes your netcode is legitimately buggy and you deserve criticism lol
@luke.wayneee9 ай бұрын
When I see "seriously go read these articles they're great" Im dead inside already reading it
@raz0rblade069 ай бұрын
man i failed my physics exam today, your videos always make me feel better, thank you
@dennisrobinson47398 ай бұрын
You just explained my networking project thank you ! Haha