"Building Video Game for the Linux Terminal" is my favorite game dev tutorial
@ducksies8 ай бұрын
Also look into notcurses, it allows you to display a lot more than just blocks
@majstorgile9 ай бұрын
Oh man, how the hell I end up here having linux addiction. I used to be normal just 15 years ago.
@RobertElderSoftware9 ай бұрын
One of us... One of us... One of us.
@victortesla29359 ай бұрын
I am happily infected with linux virus 🙂
@samarthnagar69889 ай бұрын
Linux is indeed addiction
@nobeltnium8 ай бұрын
i used to look at Linux with disgust and try to avoid it like a plague. Now look at me, dunking myself in it 🤢🤮
@victortesla29358 ай бұрын
@@nobeltnium you mush have a great pc back then
@berndeckenfels9 ай бұрын
What a ride, I remeber the nights and days finding about those details of unix ttys.
@bighat65019 ай бұрын
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!
@augustday94838 ай бұрын
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...
@RobertElderSoftware8 ай бұрын
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 :)
@josiahjack4553 ай бұрын
This is exceptional reference material!
@samarthnagar69889 ай бұрын
Hell yea my favourite linux command line game whens the powershell port coming
@anon_y_mousse9 ай бұрын
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.
@denisrcormier9 ай бұрын
Super satisfying to watch with all the back-to-back examples exploring terminal behaviours. Great video! Take care, Robert! - Denis
@RobertElderSoftware9 ай бұрын
Are you the Denis that was in my software engineering class by any chance?
@denisrcormier9 ай бұрын
Indeed! That Denis!
@RobertElderSoftware9 ай бұрын
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 :)
@denisrcormier9 ай бұрын
Things are going well! I'm back in New Brunswick. I'll hit you up if ever I'm in the region!
@Mempler9 ай бұрын
This is my second favorite channel.
@RobertElderSoftware9 ай бұрын
Which one is your first?
@marianofreddi9 ай бұрын
We are waiting.
@kunns1238 ай бұрын
Diabolical statement to let us hanging on
@user-ui8my9zs7o8 ай бұрын
Love these long form vids!
@LambdaTechnology9 ай бұрын
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🤙
@josiahjack4553 ай бұрын
This is my favorite of your videos. Really, more please. Actually sudo more
@vegard65249 ай бұрын
Found your video through youtube recommendations, excellent content!
@johnsimon84578 ай бұрын
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
@VeryCuul9 ай бұрын
This is my favorite video of yours.
@satishadhikari51809 ай бұрын
Great one Robert. Hope to see such work again soon!
@0xfolling9 ай бұрын
wonderfully educational as always :)
@alfonsoalfonso92229 ай бұрын
This is my favourite 18 minutes long video
@RobertElderSoftware9 ай бұрын
This is my favourite comment.
@grymmjack9 ай бұрын
Fantastic video. Instant subscriber.
@dryoldcrabman68908 ай бұрын
this is really good!
@xreact9 ай бұрын
i learn so much by watching your videos great job!!! Thank you
@SoulExpension8 ай бұрын
This helped me a lot. I'm thinking about doing quite a bit with nushell.
@eclypze_9 ай бұрын
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
@leghdaf4 ай бұрын
amazing content ...
@TheGmr1408 ай бұрын
Nice video 😊
@fishsayhelo98729 ай бұрын
very gud 👍
@Kalpak-i7o5 ай бұрын
This is my favourite
@brivism9 ай бұрын
this is my favorite linux command(s video)
@brivism9 ай бұрын
but seriously now, it is really very good video! I like straight to the point approach
@paxcoder9 ай бұрын
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
@sodiboo9 ай бұрын
re: end of video This is my favorite pirated video game
@RobertElderSoftware9 ай бұрын
This is my favorite comment.
@delphicdescant9 ай бұрын
I see you've uncovered the ingenious marketing technique of "please do not illegally pirate my video game."
@novantha19 ай бұрын
Is...This not just reinventing Ncurses? It's still remarkably cool that you did it from scratch, though, and is very informative.
@RobertElderSoftware9 ай бұрын
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.
@maxmuster70039 ай бұрын
But how to put a monochrome picture into a character set to display the picture inside a block of some character?
@nitrogenez9 ай бұрын
robert didn't say "favourite" in this video, did he? is this... a long awaited new era?
@RobertElderSoftware9 ай бұрын
These allegations are categorically false and I deny them entirely.
@nitrogenez9 ай бұрын
@@RobertElderSoftware i don't believe you
@greatnate299 ай бұрын
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.
@yumnuska9 ай бұрын
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!
@yumnuska9 ай бұрын
Oh! It needed at about 0:00:35!
@RobertElderSoftware9 ай бұрын
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
@munirluk80475 күн бұрын
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?
@RobertElderSoftware5 күн бұрын
Are you having trouble drawing the map or detecting keyboard inputs?
@thechadbuddha9 ай бұрын
what font is that?
@KeshavKumar-gc9pu9 ай бұрын
This is my favourite game
@RobertElderSoftware9 ай бұрын
This is my favourite comment.
@Leander_8 ай бұрын
Linux is an infinite rabbit hole it seems.
@CeccoPierangioliEuge9 ай бұрын
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.
@sevos9 ай бұрын
- 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**
@puncherinokripperino25008 ай бұрын
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.
@MrBenMcLean9 ай бұрын
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?
@RobertElderSoftware9 ай бұрын
"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.
@MrBenMcLean9 ай бұрын
@@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.
@sayanghosh69969 ай бұрын
Hey, love your videos. Can you make a video on `col` command?
@volkoivan7 ай бұрын
Who tf dislikes this video?? Really interesting
@chickenbonelives9 ай бұрын
but can it play doom?
@Redditard9 ай бұрын
Loved the video, sub worth channel! I always wondered this stuff... :) Also, I didn't just illegally pirate the video game :)
@RobertElderSoftware9 ай бұрын
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.
@JorneDeSmedt17 күн бұрын
How do you legally pirate a video game?
@knghtbrd9 ай бұрын
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.
@varshneydevansh9 ай бұрын
OMG what a find. Subbed
@66ogg2 ай бұрын
Wooooo9w AWEEESOO Me
@der.Schtefan9 ай бұрын
Are you aware of the fact that you're changing the way you pronounce the word "again" between adjunct sentences?
@RobertElderSoftware9 ай бұрын
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-pirate9 ай бұрын
This is a common trait among Canadians. I wonder how Robert pronounces 'milk'?
@der.Schtefan9 ай бұрын
@@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.
@RobertElderSoftware9 ай бұрын
@@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.
@victortesla29359 ай бұрын
Comment anything accept "This is my favourite comment" 🙂
@RobertElderSoftware9 ай бұрын
Ok, I 'accept' that I must comment that this is my favourite comment.
@ForeverZer09 ай бұрын
As I am a 1337 h4x0r, I instantly unsubbed, pirated your game, then resubbed. I just love living on the edge like that.