Building Video Games For The Linux Terminal

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 พ.ย. 2024

ความคิดเห็น • 91

  • @joewell6435
    @joewell6435 8 หลายเดือนก่อน +19

    "Building Video Game for the Linux Terminal" is my favorite game dev tutorial

  • @ducksies
    @ducksies 8 หลายเดือนก่อน +6

    Also look into notcurses, it allows you to display a lot more than just blocks

  • @bighat6501
    @bighat6501 9 หลายเดือนก่อน +12

    Excellent video, thank you sir. I'm sure every viewer can appreciate just how many hours it has have taken, not just to create this video, but to identify, discover and learn everything up to the point where you can make a video like this one. Very inspirational indeed!

  • @berndeckenfels
    @berndeckenfels 8 หลายเดือนก่อน +5

    What a ride, I remeber the nights and days finding about those details of unix ttys.

  • @anon_y_mousse
    @anon_y_mousse 9 หลายเดือนก่อน +8

    Here's a small tip for you, if you use colors in your prompt string for the terminal, you can use the reset code at the start or end or both so it won't matter what colors get adjusted and it'll go back to normal for when you type commands in. I've got mine setup so that normal user names are green, root obviously in red, I have a yellow indicator symbol after that, generally just an @ for normal stuff, and a path in blue. Since the prompt gets kind of long at times, I've made it a two-line prompt, with the usual user based prompt characters.

  • @denisrcormier
    @denisrcormier 9 หลายเดือนก่อน +9

    Super satisfying to watch with all the back-to-back examples exploring terminal behaviours. Great video! Take care, Robert!
    - Denis

    • @RobertElderSoftware
      @RobertElderSoftware  9 หลายเดือนก่อน

      Are you the Denis that was in my software engineering class by any chance?

    • @denisrcormier
      @denisrcormier 9 หลายเดือนก่อน +1

      Indeed! That Denis!

    • @RobertElderSoftware
      @RobertElderSoftware  9 หลายเดือนก่อน

      Niceeeee!! How's it going, hope you're doing well. I'm still in Kitchener at the moment. If you're also still up here, send me if you'd like to catch up some time :)

    • @denisrcormier
      @denisrcormier 9 หลายเดือนก่อน +1

      Things are going well! I'm back in New Brunswick. I'll hit you up if ever I'm in the region!

  • @LambdaTechnology
    @LambdaTechnology 8 หลายเดือนก่อน +7

    This was AWESOME! So much information packed into an extremely well done format. So many implications too.. security comes to mind in so many ways.
    I wrote 4 small python apps this past week, for a newly onboarded subcontractor and time was a factor. The first line of each app’s README file requested that the user maximize the terminal screen as soon as the app script was executed 😝
    NOBODY HERE BETTER PIRATE THIS MANS VIDEO GAME! ALL BUCANEERS WILL HAVE THEIR ESCAPE CODES ALIASED AND INPUTS FORMATTED SO THAT THERE IS NO ESCAPE FROM TERMINAL LAND! 😂
    Btw, Robert, your background wall hanging decor is superb. I’d love to have a beer or 3 with you some day 🤌 cheers brother🤙

  • @augustday9483
    @augustday9483 8 หลายเดือนก่อน +2

    I wish this video existed five years ago! There was a time when I really wanted to make a terminal ascii game, but the character width and keyboard autorepeat issues drove me crazy and I gave up! My Google-fu at the time wasn't up to the task to find the solutions that you've so excellently put together into this video.
    I might just have to try taking another crack at it now...

    • @RobertElderSoftware
      @RobertElderSoftware  8 หลายเดือนก่อน +2

      The biggest issue is that a lot of the concepts in this video are not even googleable if you don't already know the answers, which is why I decided someone needs to make this video :)

    • @josiahjack455
      @josiahjack455 2 หลายเดือนก่อน

      This is exceptional reference material!

  • @user-ui8my9zs7o
    @user-ui8my9zs7o 8 หลายเดือนก่อน +1

    Love these long form vids!

  • @Mempler
    @Mempler 9 หลายเดือนก่อน +8

    This is my second favorite channel.

    • @RobertElderSoftware
      @RobertElderSoftware  8 หลายเดือนก่อน +4

      Which one is your first?

    • @marianofreddi
      @marianofreddi 8 หลายเดือนก่อน +1

      We are waiting.

    • @kunns123
      @kunns123 8 หลายเดือนก่อน +1

      Diabolical statement to let us hanging on

  • @majstorgile
    @majstorgile 9 หลายเดือนก่อน +75

    Oh man, how the hell I end up here having linux addiction. I used to be normal just 15 years ago.

    • @RobertElderSoftware
      @RobertElderSoftware  9 หลายเดือนก่อน +26

      One of us... One of us... One of us.

    • @victortesla2935
      @victortesla2935 9 หลายเดือนก่อน +3

      I am happily infected with linux virus 🙂

    • @samarthnagar6988
      @samarthnagar6988 8 หลายเดือนก่อน +1

      Linux is indeed addiction

    • @nobeltnium
      @nobeltnium 8 หลายเดือนก่อน

      i used to look at Linux with disgust and try to avoid it like a plague. Now look at me, dunking myself in it 🤢🤮

    • @victortesla2935
      @victortesla2935 8 หลายเดือนก่อน

      @@nobeltnium you mush have a great pc back then

  • @samarthnagar6988
    @samarthnagar6988 8 หลายเดือนก่อน +6

    Hell yea my favourite linux command line game whens the powershell port coming

  • @josiahjack455
    @josiahjack455 2 หลายเดือนก่อน

    This is my favorite of your videos. Really, more please. Actually sudo more

  • @vegard6524
    @vegard6524 9 หลายเดือนก่อน +2

    Found your video through youtube recommendations, excellent content!

  • @johnsimon8457
    @johnsimon8457 8 หลายเดือนก่อน +2

    I guess there's a reason why something like Dwarf Fortress ships an executable which delivers its own graphical terminal instead of leaving it up to the vast array of unknowns that can happen on the user side.
    Still - I see how rich a modern terminal app can be, having hundreds of colors and little glyphs (just see ytop and how they do line graphs in the terminal) and how none of this was around twenty years ago and I can see the appeal of a real time terminal only game

  • @satishadhikari5180
    @satishadhikari5180 8 หลายเดือนก่อน

    Great one Robert. Hope to see such work again soon!

  • @alfonsoalfonso9222
    @alfonsoalfonso9222 9 หลายเดือนก่อน +2

    This is my favourite 18 minutes long video

  • @VeryCuul
    @VeryCuul 8 หลายเดือนก่อน

    This is my favorite video of yours.

  • @SoulExpension
    @SoulExpension 8 หลายเดือนก่อน

    This helped me a lot. I'm thinking about doing quite a bit with nushell.

  • @xreact
    @xreact 9 หลายเดือนก่อน

    i learn so much by watching your videos great job!!!
    Thank you

  • @eclypze_
    @eclypze_ 9 หลายเดือนก่อน +3

    The characther thing happened to me too! Been working on doing a battleship game in C++ and it took me more time to measure correctly which chars to use than to code the actual game LMAO

  • @0xfolling
    @0xfolling 8 หลายเดือนก่อน

    wonderfully educational as always :)

  • @grymmjack
    @grymmjack 8 หลายเดือนก่อน +1

    Fantastic video. Instant subscriber.

  • @dryoldcrabman6890
    @dryoldcrabman6890 8 หลายเดือนก่อน

    this is really good!

  • @brivism
    @brivism 9 หลายเดือนก่อน +1

    this is my favorite linux command(s video)

    • @brivism
      @brivism 9 หลายเดือนก่อน +1

      but seriously now, it is really very good video! I like straight to the point approach

  • @Kalpak-i7o
    @Kalpak-i7o 5 หลายเดือนก่อน

    This is my favourite

  • @leghdaf
    @leghdaf 3 หลายเดือนก่อน

    amazing content ...

  • @sodiboo
    @sodiboo 8 หลายเดือนก่อน +2

    re: end of video
    This is my favorite pirated video game

  • @yumnuska
    @yumnuska 8 หลายเดือนก่อน +1

    I don’t want to detract from the video, but I wanted to let you know (if nobody else has) that you’ve got a hiss in your audio, as if you were listening to an analogue tape on an old tape deck!
    I’m loving the rest so far though!

    • @yumnuska
      @yumnuska 8 หลายเดือนก่อน

      Oh! It needed at about 0:00:35!

    • @RobertElderSoftware
      @RobertElderSoftware  8 หลายเดือนก่อน +1

      Thanks for the note. Do you mean that the 'analogue tape hiss' that you're talking about goes away after 0:00:35? For the intro, I had the microphone a bit further away than for the rest of the video, so I had to increase the gain for that part to normalize it with the later part of the video. This will of course increase the noise level of the background as well. The hiss also might be the background noise of my computer fans, and other ambient noise in my apartment. Good audio recording is surprisingly difficult. I even have to shut off my fridge every time I record a video so that it doesn't wake up and add tons of background noise to the video. A few times, I've even forgotten to turn it back on, lol

  • @TheGmr140
    @TheGmr140 8 หลายเดือนก่อน

    Nice video 😊

  • @fishsayhelo9872
    @fishsayhelo9872 8 หลายเดือนก่อน +1

    very gud 👍

  • @paxcoder
    @paxcoder 8 หลายเดือนก่อน

    The man's "favorite video game" from the start is his own. It seems nothing more than a toy project at this point. Yet there is a kickstarter video that sounds like someone trying to assure me to buy a brick

  • @nitrogenez
    @nitrogenez 8 หลายเดือนก่อน +1

    robert didn't say "favourite" in this video, did he? is this... a long awaited new era?

    • @RobertElderSoftware
      @RobertElderSoftware  8 หลายเดือนก่อน

      These allegations are categorically false and I deny them entirely.

    • @nitrogenez
      @nitrogenez 8 หลายเดือนก่อน

      @@RobertElderSoftware i don't believe you

  • @novantha1
    @novantha1 8 หลายเดือนก่อน

    Is...This not just reinventing Ncurses?
    It's still remarkably cool that you did it from scratch, though, and is very informative.

    • @RobertElderSoftware
      @RobertElderSoftware  8 หลายเดือนก่อน

      Ncurses is indeed the last section in the video. There is some overlap with concepts discussed in the other sections, but many of the concepts like language/encoding settings, ANSI escape sequences, or character width ambiguities exist independently of ncurses.

  • @delphicdescant
    @delphicdescant 8 หลายเดือนก่อน +1

    I see you've uncovered the ingenious marketing technique of "please do not illegally pirate my video game."

  • @greatnate29
    @greatnate29 8 หลายเดือนก่อน

    I'm currently working on a terminal game after wondering why people don't make them anymore. I realized that there is very little standardization and almost nothing is guaranteed to work on every terminal. I still have no idea what is safe to use and I'm sure it will break with someone's set-up. Support for various features can vary wildly and standardization only exists for some of the more simple things. I can really see why people just render their own text in a window for text based games now.

  • @CeccoPierangioliEuge
    @CeccoPierangioliEuge 8 หลายเดือนก่อน

    Nice video, many useful info.
    In these days I am trying to make a terminal game for the #7drl using the lib pyTermTk ("7drl-ASnakeOnAPLane")
    using only double sized chars to have a proportional tilesets.

  • @volkoivan
    @volkoivan 7 หลายเดือนก่อน

    Who tf dislikes this video?? Really interesting

  • @KeshavKumar-gc9pu
    @KeshavKumar-gc9pu 9 หลายเดือนก่อน +5

    This is my favourite game

  • @Leander_
    @Leander_ 8 หลายเดือนก่อน +1

    Linux is an infinite rabbit hole it seems.

  • @puncherinokripperino2500
    @puncherinokripperino2500 8 หลายเดือนก่อน +1

    It seems like it's easier to write your own terminal emulator and make your game for it, than inteface with all that weird inconsistent stuff.

  • @munirluk8047
    @munirluk8047 17 ชั่วโมงที่ผ่านมา

    Can you give me any suggestions please : I’m working on the same concept of a terminal game , using java , but I’m struggling to create a dynamic visual map that updates on each player’s move. How do you do that on your game please?

    • @RobertElderSoftware
      @RobertElderSoftware  8 ชั่วโมงที่ผ่านมา

      Are you having trouble drawing the map or detecting keyboard inputs?

  • @MrBenMcLean
    @MrBenMcLean 8 หลายเดือนก่อน

    Why aren't the character widths consistent?
    The way you described the problem, it looks like it is going to be flat out insurmountable for most people.
    Is making applications for the terminal like this simply a bad idea fundamentally?

    • @RobertElderSoftware
      @RobertElderSoftware  8 หลายเดือนก่อน +1

      "Is making applications for the terminal like this simply a bad idea fundamentally?", some people would probably argue that the answer is "Yes, you shouldn't make multi-language applications for the terminal.", but that's a matter of opinion. Languages like Japanese have characters that are simply wider than most traditional Latin ASCII characters. I suppose it would be possible to squeeze them into one single column in a mono-spaced font, but I'm sure that there are language experts who think that this is not an acceptable design decision. I have no opinion on the subject, but if you DO want to make terminal applications and count widths accurately, this video is the only discussion of the topic that I am aware of.

    • @MrBenMcLean
      @MrBenMcLean 8 หลายเดือนก่อน

      @@RobertElderSoftware Consistent doesn't mean that character widths have to be the same for all characters: they merely have to behave the same across platforms. You need technical guarantees that the terminal will always work the way it works in your test case. Otherwise, you'll have no idea whether what you're doing will work on anybody else's computer or not and you'd be better off using a Javascript library which fakes an ncurses-lookalike interface in a browser window since that would run more consistently across all systems.

  • @thechadbuddha
    @thechadbuddha 8 หลายเดือนก่อน +1

    what font is that?

  • @sayanghosh6996
    @sayanghosh6996 8 หลายเดือนก่อน

    Hey, love your videos. Can you make a video on `col` command?

  • @maxmuster7003
    @maxmuster7003 8 หลายเดือนก่อน

    But how to put a monochrome picture into a character set to display the picture inside a block of some character?

  • @chickenbonelives
    @chickenbonelives 9 หลายเดือนก่อน +1

    but can it play doom?

  • @sevos
    @sevos 9 หลายเดือนก่อน +2

    - Mom can I have a fun video about a terminal game
    - To have fun?
    - YES
    **actually learns about terminal state, input and encoding like a boss**

  • @knghtbrd
    @knghtbrd 8 หลายเดือนก่อน +2

    Please please please, people please, USE TERMINFO like ncurses does. I don't know how many Linux programs I have seen, mostly written in Go and Rust, assume that EVERYONE!!!! has the exact same terminal control codes. And that's just not even true even of Linux users using terminal _emulators_ on Linux to access Linux.
    When you use tput and stty, they're accessing your terminal's capabilities and command strings and sending the correct ones for your terminal. When you send raw escape commands to stdout, you aren't.

  • @Redditard
    @Redditard 8 หลายเดือนก่อน

    Loved the video, sub worth channel! I always wondered this stuff... :)
    Also, I didn't just illegally pirate the video game :)

    • @RobertElderSoftware
      @RobertElderSoftware  8 หลายเดือนก่อน

      Awesome! Thanks for not illegally pirating my video game. Obeying the law is one of my favourite things to do, and I'm glad that you share this preference.

  • @JorneDeSmedt
    @JorneDeSmedt 12 วันที่ผ่านมา

    How do you legally pirate a video game?

  • @der.Schtefan
    @der.Schtefan 9 หลายเดือนก่อน +1

    Are you aware of the fact that you're changing the way you pronounce the word "again" between adjunct sentences?

    • @RobertElderSoftware
      @RobertElderSoftware  9 หลายเดือนก่อน

      lol, I am becoming increasingly aware of the nuances of how I pronounce things from various comments on my videos. The specific pattern that you describe is one that I would have never been conscious of had you not mentioned it. In fact, I have trouble even imagining the difference without listening to the video. I am basically 'sound blind' to these differences and don't even think about them unless someone points it out. It's the same with how I say 'Ubuntu'. I usually just say "Ooo bunt Ooo" which I consider to just be a lazy English phonetisization of the native pronunciation "Ooo Boo n Too". I would barely pick up on the difference in conversation, but it seems to really bug some people :P

    • @wizard-pirate
      @wizard-pirate 9 หลายเดือนก่อน +3

      This is a common trait among Canadians.
      I wonder how Robert pronounces 'milk'?

    • @der.Schtefan
      @der.Schtefan 9 หลายเดือนก่อน +1

      @@RobertElderSoftware It doesn't bug me at all, I'd listen to you all day. In fact I do... And if anything I would have guessed this is very deliberate and actually a secret binary encoding for super fans, and the resulting message is a link to some special content.

    • @RobertElderSoftware
      @RobertElderSoftware  8 หลายเดือนก่อน

      @@der.Schtefanhah, that would be interesting, but too much work. I had thought about doing a video on the topic of subliminal messaging in YT videos, because modern day censorship kind of forces us to speak in a coded language. On the extreme end of things, it means that there is certain content on the internet that can only be understood by a select few members of the in-group. The social implications of this are interesting to think about, but I've got too much else going on at the moment.

  • @66ogg
    @66ogg 2 หลายเดือนก่อน

    Wooooo9w AWEEESOO Me

  • @varshneydevansh
    @varshneydevansh 9 หลายเดือนก่อน

    OMG what a find. Subbed

  • @victortesla2935
    @victortesla2935 9 หลายเดือนก่อน +1

    Comment anything accept "This is my favourite comment" 🙂

    • @RobertElderSoftware
      @RobertElderSoftware  9 หลายเดือนก่อน +3

      Ok, I 'accept' that I must comment that this is my favourite comment.

  • @ForeverZer0
    @ForeverZer0 8 หลายเดือนก่อน +3

    As I am a 1337 h4x0r, I instantly unsubbed, pirated your game, then resubbed. I just love living on the edge like that.