Building Video Games For The Linux Terminal

Поделиться
HTML-код
  • Опубликовано: 20 авг 2024

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

  • @joewell6435
    @joewell6435 5 месяцев назад +14

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

  • @bighat6501
    @bighat6501 5 месяцев назад +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!

  • @ducksies
    @ducksies 5 месяцев назад +6

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

  • @denisrcormier
    @denisrcormier 5 месяцев назад +9

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

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

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

    • @denisrcormier
      @denisrcormier 5 месяцев назад +1

      Indeed! That Denis!

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

      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 5 месяцев назад +1

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

  • @majstorgile
    @majstorgile 5 месяцев назад +72

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

    • @RobertElderSoftware
      @RobertElderSoftware  5 месяцев назад +25

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

    • @victortesla2935
      @victortesla2935 5 месяцев назад +3

      I am happily infected with linux virus 🙂

    • @samarthnagar6988
      @samarthnagar6988 5 месяцев назад +1

      Linux is indeed addiction

    • @nobeltnium
      @nobeltnium 4 месяца назад

      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 4 месяца назад

      @@nobeltnium you mush have a great pc back then

  • @anon_y_mousse
    @anon_y_mousse 5 месяцев назад +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.

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

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

  • @samarthnagar6988
    @samarthnagar6988 5 месяцев назад +6

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

  • @LambdaTechnology
    @LambdaTechnology 5 месяцев назад +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🤙

  • @Mempler
    @Mempler 5 месяцев назад +8

    This is my second favorite channel.

  • @augustday9483
    @augustday9483 5 месяцев назад +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  5 месяцев назад +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 :)

  • @johnsimon8457
    @johnsimon8457 5 месяцев назад +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

  • @alfonsoalfonso9222
    @alfonsoalfonso9222 5 месяцев назад +2

    This is my favourite 18 minutes long video

  • @vegard6524
    @vegard6524 5 месяцев назад +2

    Found your video through youtube recommendations, excellent content!

  • @user-ui8my9zs7o
    @user-ui8my9zs7o 4 месяца назад +1

    Love these long form vids!

  • @eclypze_
    @eclypze_ 5 месяцев назад +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

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

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

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

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

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

    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

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

    This is my favorite video of yours.

  • @delphicdescant
    @delphicdescant 5 месяцев назад +1

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

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

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

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

    this is really good!

  • @grymmjack
    @grymmjack 5 месяцев назад +1

    Fantastic video. Instant subscriber.

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

    wonderfully educational as always :)

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

    This is my favourite

  • @user-fp7fs9xl2t
    @user-fp7fs9xl2t 18 дней назад

    amazing content ...

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

    Nice video 😊

  • @puncherinokripperino2500
    @puncherinokripperino2500 5 месяцев назад +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.

  • @brivism
    @brivism 5 месяцев назад +1

    this is my favorite linux command(s video)

    • @brivism
      @brivism 5 месяцев назад +1

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

  • @sevos
    @sevos 5 месяцев назад +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**

  • @Leander_
    @Leander_ 5 месяцев назад +1

    Linux is an infinite rabbit hole it seems.

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

    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.

  • @nitrogenez
    @nitrogenez 5 месяцев назад +1

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

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

      These allegations are categorically false and I deny them entirely.

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

      @@RobertElderSoftware i don't believe you

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

    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.

  • @knghtbrd
    @knghtbrd 5 месяцев назад +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.

  • @KeshavKumar-gc9pu
    @KeshavKumar-gc9pu 5 месяцев назад +5

    This is my favourite game

  • @sodiboo
    @sodiboo 5 месяцев назад +2

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

  • @yumnuska
    @yumnuska 5 месяцев назад +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 5 месяцев назад

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

    • @RobertElderSoftware
      @RobertElderSoftware  5 месяцев назад +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

  • @volkoivan
    @volkoivan 4 месяца назад

    Who tf dislikes this video?? Really interesting

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

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

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

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

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

      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.

  • @fishsayhelo9872
    @fishsayhelo9872 5 месяцев назад +1

    very gud 👍

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

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

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

    OMG what a find. Subbed

  • @chickenbonelives
    @chickenbonelives 5 месяцев назад +1

    but can it play doom?

  • @thechadbuddha
    @thechadbuddha 5 месяцев назад +1

    what font is that?

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

    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  5 месяцев назад +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 5 месяцев назад

      @@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.

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

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

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

      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.

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

    Excel spreadsheet gaming

  • @der.Schtefan
    @der.Schtefan 5 месяцев назад +1

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

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

      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 5 месяцев назад +3

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

    • @der.Schtefan
      @der.Schtefan 5 месяцев назад +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  5 месяцев назад

      @@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.

  • @victortesla2935
    @victortesla2935 5 месяцев назад +1

    Comment anything accept "This is my favourite comment" 🙂

    • @RobertElderSoftware
      @RobertElderSoftware  5 месяцев назад +3

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

  • @ForeverZer0
    @ForeverZer0 5 месяцев назад +3

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