Programming an entire game from scratch | Prime Reacts

Поделиться
HTML-код
  • Опубликовано: 18 май 2023
  • Recorded live on twitch, GET IN
    / theprimeagen
    Original: • Programming an entire ...
    SUB TO THIS GUY: / @bigrando420
    MY MAIN YT CHANNEL: Has well edited engineering videos
    / theprimeagen
    Discord
    / discord
    Have something for me to read or react to?: / theprimeagenreact
  • НаукаНаука

Комментарии • 287

  • @therealfba
    @therealfba Год назад +320

    Flip took the day off. We got flop instead 😂

  • @tropictiger2387
    @tropictiger2387 10 месяцев назад +309

    Prime, please send my compliments to your editor, excellent zoom skills. very subtle and understated.

  • @ShashwatAgrawal20
    @ShashwatAgrawal20 Год назад +1018

    I think it's time for you to get a new editor 😂

  • @Eric-vh4qg
    @Eric-vh4qg Год назад +56

    "When someone says that I have the building blocks to make absolutely anything; it really means, I have currently made something in which when I make something it will still take an incredible amount of time." -ThePrimeagen
    That one cut me deep.

  • @Kopraaaa
    @Kopraaaa Год назад +96

    Flip gonna be flipped

    • @flipmediaprod
      @flipmediaprod Год назад +9

      packing my bags now

    • @Kopraaaa
      @Kopraaaa Год назад +2

      @@flipmediaprod
      I just had to say it since it was in my head, I do not mean it!

  • @sciencedude22
    @sciencedude22 Год назад +91

    You haven't truly lived until you've built your own audio player. I have. Was it good? No. Was it streamlined? Easy to use? No. But, it was beautiful. And now when I use SDL2_mixer, I don't ask, "what in sam hell is this shit" No. I say, "Thank you based god." And as I call upon Mix_LoadMUS, our lord Gaben looks down from his throne of Steam Decks on high, and he says, "It is well my good and faithful servant." And then I run it through a profiler, and I agree it is well. Amen.

  • @karan_dev
    @karan_dev Год назад +276

    lol i dont think your editor listens to your videos

    • @flipmediaprod
      @flipmediaprod Год назад +38

      i had chief keef blasting to loud in the headphones while editing this one.. my bad boys

    • @andrewdunbar828
      @andrewdunbar828 Год назад +1

      YET! somebody make an unfiltered LLM model that roasts your shitty code instead of just doing it for you...

  • @writeorwrong88
    @writeorwrong88 Год назад +34

    A wiser coworker than me found the reason we could get the last three audio samples out of ffmpeg: you have to reach into ffmpeg's internal buffers and wrench away those last away by force, because ffmpeg is a little gremlin that hides them from you. Cry in the evening indeed.

  • @SimGunther
    @SimGunther Год назад +22

    0:55 Lesson learned: unlike what most companies will tell you, this actually is a great place for a free lunch

  • @anmiasm
    @anmiasm 8 месяцев назад

    Man, I love your videos. You both hilarious and inspiring!

  • @CodyDBentley
    @CodyDBentley Год назад +40

    5:10 Juicing The Camera is actually a really good GDC talk, definitely worth checking out. Also, you should play with Bevy in Rust some day, it's hella cool

    • @jakobbouchard
      @jakobbouchard Год назад +2

      was gonna say that juicing in game dev is quite a known thing haha, but then again it's quite weird to outsiders

    • @andrewdunbar828
      @andrewdunbar828 Год назад

      ruclips.net/video/tu-Qe66AvtY/видео.html&ab_channel=GDC

  • @TheMistr25
    @TheMistr25 Год назад +44

    "I cried in the evening due to the bugs I could not figure out due to C", that resonates so strongly deep within the self.

    • @ARKSYN
      @ARKSYN 6 месяцев назад

      Don't have to troubleshoot bugs if it just SEGFAULT's immediately 🧠

  • @c4llv07e
    @c4llv07e Год назад +12

    "tsoding = GIGACHAD"

  • @Wizzardo
    @Wizzardo Год назад +32

    Tip: You can use comma or period to go back or forward a frame on RUclips

    • @draganjonceski2639
      @draganjonceski2639 Год назад +4

      wow thanks, thought you were trolling but it turns out you just have to pause the video

  • @HyperCodec
    @HyperCodec Год назад +7

    "A piece of piss" is one of my fav sniper lines from tf2

  • @gholamrezadar
    @gholamrezadar Год назад +38

    7:09 I think flip edits your videos using these AI automation shit.

    • @gholamrezadar
      @gholamrezadar Год назад +12

      But don't worry I zoomed in with my imagination with mozart in the bg

  • @skilz8098
    @skilz8098 7 месяцев назад

    Sound Drivers... much to explore there! Takes me back to the DOS days of gaming and having to manually configure each and every game to have the correct sound / video card, that they're assigned to the right IRQ channels, setting the correct DMAs, etc. during the setup procedure after installing the game. The fun old days!

  • @et2124
    @et2124 7 месяцев назад +1

    Watching the best doing their thing always seems easy. I think this guy is just next level.

  • @Arbmosal
    @Arbmosal Год назад +128

    I think the reason his game programming seems so much easier than yours is that he has been doing nothing else for the last years :D

    • @MrFreeGman
      @MrFreeGman 7 месяцев назад +8

      He also edited out the hours worth of sitting there and thinking and procrastinating and screwing up 20 times before it finally works

  • @cuca_dev
    @cuca_dev Год назад +51

    Game development coding 101: show some bits of C/Zig/Odin/JAI code -> Then cut to starter Unity/Game Maker projects with changed sprites
    (Except for Jonathan Blow and Randy, they'll have to create their own Kernel, OS, Programming language, game engine, etc)

    • @andrewdunbar828
      @andrewdunbar828 Год назад +5

      AngeTheGreat would be in that category.

    • @snooks5607
      @snooks5607 7 месяцев назад

      these are no doubt good programmers but Andreas Kling is the one who actually did create the kernel, the OS, the custom programming language, the damn web browser from scratch which was honestly more impressive than all the other little projects including the js interpreter with a JIT compiler. and basically all that in series of few hundred 1-2h long non-edited videos (he'd no doubt be quick to credit the community as well but let's be real he's the one carrying the whole thing).. he'll let you do the games though

  • @AssholeHealth
    @AssholeHealth Год назад +40

    >Hey editor, can you slowly zoom in my camera, put some music and...
    >No
    >Refuses to elaborate further
    >Presses render
    >Leaves

  • @TomasSandven
    @TomasSandven Год назад +2

    Can’t believe the editor didn’t zoom… I was ready for the smooth jazz

  • @a097f7g
    @a097f7g 9 месяцев назад +6

    Jai is the most joyful programming language I ever used and I tried Zig and Rust before. Nothing comes close. It's just beautifully crafted for game development and you get all the power you need + convenience and lots of built-in goodies.

    • @RenderingUser
      @RenderingUser 2 месяца назад +1

      How does it compare to bevy btw. I'm curious

  • @wewantthefunk73
    @wewantthefunk73 Год назад +2

    "The amount of capital letters in DirectX should be a crime"
    COBOL: "Hold my beer"

  • @tsalVlog
    @tsalVlog Год назад +182

    oh man. your audience needs to watch a lot more Randy.

    • @ThePrimeTimeagen
      @ThePrimeTimeagen  Год назад +85

      Randy is the best

    • @MrLucasEss
      @MrLucasEss Год назад +26

      Yeah, give more views to the dude that went to Bali to spend his supporters money when he promised to make a game and only talked about it when he was low on cash.

    • @OcarinaOfVali
      @OcarinaOfVali Год назад

      honestly i love randy so much. binged all his vids the second I knew about him

    • @germanslice
      @germanslice Год назад

      ​@@OcarinaOfVali Ah the guy who was making his own game in Australia.. I been trying to make my own game as well. But I was using the windows console to make a dialog driven game, and then tried to put it into blueprints in unreal engine... I put funny dialog in it.

    • @NostraDavid2
      @NostraDavid2 Год назад

      ​@@MrLucasEss Don't forget that his official response to those concerns was "lick my balls". That's when I decided to stop watching the prick. He's an annoying child, turns out.
      A shame, because it was interesting following his journey, even though it didn't really go nowhere.

  • @ScibbieGames
    @ScibbieGames Год назад +3

    12:22 This is the funniest bug caused by integer signage I've ever seen

  • @ashing838
    @ashing838 7 месяцев назад

    When I was young and trying to learn to program I remember getting "Tricks of the Windows Game Programming Gurus" and just the function signatures for spawning a basic window turned me off programming for year. I thought I was just too dumb since I thought I had to memorize all the parameters for _everything_. Fortunately I've been in the software industry for a decade now, but I still shudder thinking back on those insane signatures.

  • @obszczymucha1337
    @obszczymucha1337 Год назад +7

    "The amount of capital letters in DirectX should be a crime." I love you man, sometimes it feels like you're the only one who understands me.
    Edit (had to): 1:05 to 2:22 is gold. The rest... I still love you, but you wasted approx. 15:30-(2:22-1:05) of my life. Editing comments is hard lol

  • @m4rt_
    @m4rt_ 9 месяцев назад +2

    It looks easy in his video because he only mentions the top level things to do.
    e.g. make a triagle, make two of them so it's a quad, make it show a texture instead of just single colors.
    There is a lot of code behind it that he is not showing.
    Also, Jai makes it a lot easier to make games, etc (it was designed for game development) so it's easier to accomplish what you need.
    For example, there is a library/module named Window_Creation that you can use to create a window with one line of code on Windows, Linux, and Mac.
    There is also a library/module named Input, so you can just get input, without any hassle.
    TL;DR: It's complicated to do stuff, but Jai makes it easier to accomplish, and he only shows milestones instead of every line of code.

  • @m4rt_
    @m4rt_ Год назад +14

    It looks easy because it is easy.
    Jai is a joy to program in.
    (yeah he skipped over some steps, but it's still fast)

    • @stefanalecu9532
      @stefanalecu9532 Год назад +5

      Skipping over some steps, like actually getting the Jai compiler ;)

  • @Stabby666
    @Stabby666 Год назад +1

    We actually also use the "piece of piss mate" phrase in the UK too - although it's going out of fashion.

  • @platypus001
    @platypus001 9 месяцев назад

    2:57 btw comma and period lets you seek back and foward frame by frame

  • @fabbritechnology
    @fabbritechnology Год назад

    The backhand with the baby powder. 😂⭐️

  • @MichaelSt
    @MichaelSt 5 месяцев назад

    That austin power #2 reference by chat was amazing

  • @skilz8098
    @skilz8098 7 месяцев назад +1

    Old school DirectX - OpenGL rendering window with Windows API setup 500+ lines of code before modifying any of the pixels other than the default screen color at startup. Learning how to have Windows Procedural Callback, dealing with the Windows HANDLE's... The messaging system... then configuring your Application's main window attributes and settings such as size and position, resizing it, windowed or fullscreen resolution modes. Then having to modify or configure it's HDWC drawing commands for either DirectX or OpenGL to be the primary drawing context. The good old days of having 500+ required boilerplate code up and running for every project before you even render your first graphical triangle. Oh how we are spoiled today... That can be now done in about 4-20 lines of code pending on preferred initial setup and assigned functionalities all through the use of a a simple library.
    However, it's not all fun and games... If there are any unforeseen bugs which I'm sure there are in said libraries and APIs that you're using within your projects then your applications have those same bugs. You're also at the mercy of the library / API vendor(s) for when they update or make any changes to it. If and when you migrate to their newer version(s), you have to make sure your entire code base works as expected. Of course any newer versions or releases may provide many or most of those bug fixes but more than likely they've also introduced a bunch of new ones... So there's always a tradeoff!
    Roll your own and carefully manage your own internal bugs (good luck). It does take a little bit longer to get your project(s) up and running yet it also provides you with more control and flexibility towards what you want your applications to do. Otherwise you'll have to rely on some outside library or API trusting that they will do in the hopes exactly what they claim or are intended, expected to do, also (good luck). For we all know too well that bugs or badly written, badly structured, poor choice of algorithm, etc... can and will show up anywhere at any time causing invalid results, code - program crashes, or even system wide crashes; all because someone missed an edge case, or improperly accessed an invalid or dangling pointer - reference object, out of bounds indexing, off by one errors, division by zero, error in calculations from narrowing or widening a type... stack and or buffer under or overflows, page or segmentation faults, and much much more... So either way there are always trade offs and bound to be bugs, so again(Good Luck).
    I guess it's time to dive into doing some Vulkan programming...

  • @ThisIsAGoodUserNameToo
    @ThisIsAGoodUserNameToo Год назад +21

    Flip y u no zoom

  • @vitluk
    @vitluk Год назад

    Glad to see another Randy enjoyer

  • @MrA6060
    @MrA6060 Месяц назад

    i used to mod in his discord server back when he was doing the green screen stuff, it was sad to see him basically abandoning everything but i do wish him the best for his new game, now remade probably 8 times, it's been a while since last update tho

  • @Maiska123
    @Maiska123 Год назад +3

    8:41 "...now i got the building blocks to do anything..." yea, if you would've listen the assignment properly, you would've had blocks right away - it clearly said "...IN Scratch" not "...FROM Scratch"😂

  • @lezzbmm
    @lezzbmm 2 месяца назад

    12:40 “classic superposition” 😭 lmaooo so tru

  • @engine_man
    @engine_man Год назад

    Nah bro. Your videos are the best

  • @XDjUanZInHO
    @XDjUanZInHO Год назад

    You got yourself a nice demo of a good debugger on his video, RemedyBG if I'm not mistaken

  • @TehPwnerer
    @TehPwnerer Год назад +1

    How is the sound buffer and interface so buggy you have to do that? presumably you are purchasing this right so they must support it?

  • @wesleyoliveira6570
    @wesleyoliveira6570 Год назад +2

    Screen Tearing go _Brrrrrr_

  • @ARKSYN
    @ARKSYN 6 месяцев назад +1

    I love writing Win32 apps. I hate it, but I love it. MS devs *really* love their capital letters

  • @JustSomeAussie1
    @JustSomeAussie1 Год назад +7

    The problem with Randy is he writes something, then scraps it and rewrites it. It's a neverending cycle that he's been doing for years. He's never going to complete the game.

  • @powerslave12r
    @powerslave12r Год назад

    Song during the intro: Scoobadive - Electric.
    Ready to write a game in notepad now.

  • @oleg4966
    @oleg4966 7 месяцев назад

    6:33 You know how Technology Connections uses "the magic of buying two of them"? Now, Randy doesn't need that, because he can just copy-paste the stuff he's working with...
    ...But he does use the magic of editing out three days of suffering.

  • @BenDol90
    @BenDol90 Год назад +3

    Editor getting a pay cut lmao

  • @m4rt_
    @m4rt_ Год назад +1

    JDH, Sebastian Lague, and Tsoding are good too.

  • @computerfan1079
    @computerfan1079 Год назад

    Jai looks interesting, could be an interesting topic for a video

  • @costelinha1867
    @costelinha1867 Год назад +1

    1:32 And this is why I'd rather use libraries like SDL or Macroquad in Rust than deal with stuff like win32.

  • @skilz8098
    @skilz8098 7 месяцев назад

    Audio driver programming will teach you the foundations needed to master languages such C/C++ and or assembly! Especially if you're below the Operating Systems API and system calls, below the what use to be the HAL (Hardware Abstraction Layer) of a system, etc... When you're down to the registers and controllers, and converters going back and forth between digital and analog manipulating individual bytes and bits... that's where the fun begins. Might want to brush up on your trig, on your understanding of FFTs. Then it's a matter of not just playback, but how the audio data is being internally represented. Is it raw? Is it compressed? Is it in a mp3 format, a wav format, or structured as a MIDI sequence? Ah yes, Audio Programming will definitely teach you to use C/C++, Assembly properly!

  • @grimjim8463
    @grimjim8463 Год назад

    Rip in peace flip

  • @ceriusgeek2749
    @ceriusgeek2749 Год назад

    When are you going to create the full fledged Rust course on Frontend Masters that we all need?

  • @davidreghay3629
    @davidreghay3629 Год назад

    I spat out my coffee when you said the tech lead

  • @jasonscott1594
    @jasonscott1594 6 месяцев назад

    Pro youtube tip: You can use comma and period keys to to go back or advance a video frame by frame

  • @Rik94wifi
    @Rik94wifi Год назад +2

    The editor is no Simp.

  • @flat9safety
    @flat9safety Год назад

    I freaking love randy

  • @snooks5607
    @snooks5607 7 месяцев назад

    2:50 does ThePrimeagen know about YT frame advance keys? (or for that matter that you can press ?-key for list of key shortcuts)

  • @orychowaw
    @orychowaw Год назад +8

    If you just add the samples for the wave audio, the loudness increases. You have to average it out. So for two sources, halve the result... No worder his ears blew off!

  • @semmu93
    @semmu93 Год назад +1

    Prime, you can go frame by frame on RUclips with the . and , keys :D For the next time you want to pause a video and read something that shows up for a very brief time.

  • @skilz8098
    @skilz8098 7 месяцев назад

    breaking out the baby powder ...

  • @Caellyan
    @Caellyan Год назад +1

    JAI compiler is cross platform, like all proper compiler toolchains

  • @avgchoobafan
    @avgchoobafan Год назад

    i saw a "+= 1" in the audio section and i feared for my life. Thank god you paused right before

  • @andrewdunbar828
    @andrewdunbar828 Год назад

    Have you watched: Acerola? Suckerpinch? Code Bullet? AngeTheGreat? TsodingDaily?

  • @7Wolf77
    @7Wolf77 8 месяцев назад +1

    And his editor is like.. "yeah I'm not gonna do any of that"

  • @aminebahlaouane3604
    @aminebahlaouane3604 Месяц назад

    flip didn't zoom, not even once.

  • @andrewm6788
    @andrewm6788 8 месяцев назад +1

    the yearly randy tries something and eventually gives up

  • @Krunklehorn
    @Krunklehorn 10 месяцев назад

    "Piece of piss?" *distant TF2 laughter*

  • @user-bt8ui8kl7q
    @user-bt8ui8kl7q Месяц назад

    My brother did a programming exam, there were all these IDEs to choose from, he chose notepad.

  • @fuzzy-02
    @fuzzy-02 Год назад

    4:30 now where did I hear that music before....
    ... bonk.

  • @OcarinaOfVali
    @OcarinaOfVali Год назад +3

    the thing with michael reeves is that I am nerdy enough to want to see his code or things he did. Which he doesn't show cuz most of the audience clicks off at that point

  • @formulaetor8686
    @formulaetor8686 Год назад

    Randy Daddy rocks with that shiny baldy!!!!

  • @joynalmiah549
    @joynalmiah549 Год назад

    3:10 we have that saying in the uk too

  • @GarrethandPipa
    @GarrethandPipa 10 месяцев назад

    go back to the days BEFORE debuggers to solve that soul destroying bug in c.
    hard times create strong men, strong men create good times, good times create weak men, and weak men create hard times

  • @colkiwi
    @colkiwi 8 месяцев назад

    the amount of capital letters in directx lmaoooo hahahaha

  • @Weangered
    @Weangered Год назад +1

    zoom in...nah, im good

  • @RyanHandby
    @RyanHandby 5 месяцев назад

    Being Australian this was dope.

  • @muslimgamerrr9479
    @muslimgamerrr9479 5 дней назад

    2:50 use the , and . keys to skip frames when paused

  • @m4rt_
    @m4rt_ 9 месяцев назад

    btw if you use calloc in C instead of malloc, it get's 0 initialized

  • @ryanking4247
    @ryanking4247 10 месяцев назад

    even their headset microphones are upsidedown.

  • @noodle69
    @noodle69 Год назад

    i just realized randy uses the same sublime theme that i do

  • @liampugh4705
    @liampugh4705 Год назад

    Piece of piss is a popular phrase in England too

  • @bitcode_
    @bitcode_ 2 месяца назад

    flip googled juicing the camera and we lost flip

  • @rickdg
    @rickdg Год назад +1

    See, everybody knows that, if you want to talk to Flip, ya gotta put on the green screen.

  • @scriptjungle
    @scriptjungle Год назад

    Im really interrested in the name of the Font used in the editor. I kinda really like it but i cant find this font just by visually comparing.

    • @christopher_hipp
      @christopher_hipp Год назад

      It's Randy's own font that you can get as a Patreon member I believe

  • @MisterDevel
    @MisterDevel 10 месяцев назад

    As an Australian I can confirm, we are all actually form Nebraska.

  • @farqueueman
    @farqueueman Год назад +54

    He didn't use Rust, so it doesn't count. It's not a game and it ain't from scratch. In fact, it's nothing. *spits and walks away. ♥

  • @nordgaren2358
    @nordgaren2358 7 месяцев назад

    Prime preaching C being "the real mans language" while reacting to a video about Jai

  • @balduin_b4334
    @balduin_b4334 Год назад

    why does this looks fun?

  • @insomicraiddict
    @insomicraiddict Год назад

    Editor took the day off to have a piece of piss day.

  • @JakobKenda
    @JakobKenda Год назад

    brraking: flip didn't zoom

  • @Crcs-1997
    @Crcs-1997 Год назад

    Time to jump into 4coder

  • @oblivion_2852
    @oblivion_2852 Год назад

    Randy is from my city. Walked past him a few times lol

  • @NOPerative
    @NOPerative Год назад

    Windows 3.1 confirmed. Performant, stylish --cutting-edge.

  • @madman777656
    @madman777656 Год назад +1

    Flip did not zoom nor did he dim the lighting 😞

  • @frittex
    @frittex Год назад +2

    flip did not have any business editing this video at all

  • @rodrigoqteixeira
    @rodrigoqteixeira Месяц назад

    I also did a game from scratch and I don't think a single soul played it.

  • @nustaniel
    @nustaniel 6 дней назад

    7:35 and 9:46 are probably the best parts of the video. Thanks, Flip.