Building Video Games For The Linux Terminal

  Рет қаралды 19,456

RobertElderSoftware

RobertElderSoftware

Күн бұрын

Пікірлер: 91
@joewell6435
@joewell6435 8 ай бұрын
"Building Video Game for the Linux Terminal" is my favorite game dev tutorial
@ducksies
@ducksies 8 ай бұрын
Also look into notcurses, it allows you to display a lot more than just blocks
@majstorgile
@majstorgile 9 ай бұрын
Oh man, how the hell I end up here having linux addiction. I used to be normal just 15 years ago.
@RobertElderSoftware
@RobertElderSoftware 9 ай бұрын
One of us... One of us... One of us.
@victortesla2935
@victortesla2935 9 ай бұрын
I am happily infected with linux virus 🙂
@samarthnagar6988
@samarthnagar6988 9 ай бұрын
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
@berndeckenfels
@berndeckenfels 9 ай бұрын
What a ride, I remeber the nights and days finding about those details of unix ttys.
@bighat6501
@bighat6501 9 ай бұрын
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!
@augustday9483
@augustday9483 8 ай бұрын
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 ай бұрын
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 3 ай бұрын
This is exceptional reference material!
@samarthnagar6988
@samarthnagar6988 9 ай бұрын
Hell yea my favourite linux command line game whens the powershell port coming
@anon_y_mousse
@anon_y_mousse 9 ай бұрын
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 ай бұрын
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 ай бұрын
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 ай бұрын
Things are going well! I'm back in New Brunswick. I'll hit you up if ever I'm in the region!
@Mempler
@Mempler 9 ай бұрын
This is my second favorite channel.
@RobertElderSoftware
@RobertElderSoftware 9 ай бұрын
Which one is your first?
@marianofreddi
@marianofreddi 9 ай бұрын
We are waiting.
@kunns123
@kunns123 8 ай бұрын
Diabolical statement to let us hanging on
@user-ui8my9zs7o
@user-ui8my9zs7o 8 ай бұрын
Love these long form vids!
@LambdaTechnology
@LambdaTechnology 9 ай бұрын
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🤙
@josiahjack455
@josiahjack455 3 ай бұрын
This is my favorite of your videos. Really, more please. Actually sudo more
@vegard6524
@vegard6524 9 ай бұрын
Found your video through youtube recommendations, excellent content!
@johnsimon8457
@johnsimon8457 8 ай бұрын
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
@VeryCuul
@VeryCuul 9 ай бұрын
This is my favorite video of yours.
@satishadhikari5180
@satishadhikari5180 9 ай бұрын
Great one Robert. Hope to see such work again soon!
@0xfolling
@0xfolling 9 ай бұрын
wonderfully educational as always :)
@alfonsoalfonso9222
@alfonsoalfonso9222 9 ай бұрын
This is my favourite 18 minutes long video
@RobertElderSoftware
@RobertElderSoftware 9 ай бұрын
This is my favourite comment.
@grymmjack
@grymmjack 9 ай бұрын
Fantastic video. Instant subscriber.
@dryoldcrabman6890
@dryoldcrabman6890 8 ай бұрын
this is really good!
@xreact
@xreact 9 ай бұрын
i learn so much by watching your videos great job!!! Thank you
@SoulExpension
@SoulExpension 8 ай бұрын
This helped me a lot. I'm thinking about doing quite a bit with nushell.
@eclypze_
@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
@leghdaf
@leghdaf 4 ай бұрын
amazing content ...
@TheGmr140
@TheGmr140 8 ай бұрын
Nice video 😊
@fishsayhelo9872
@fishsayhelo9872 9 ай бұрын
very gud 👍
@Kalpak-i7o
@Kalpak-i7o 5 ай бұрын
This is my favourite
@brivism
@brivism 9 ай бұрын
this is my favorite linux command(s video)
@brivism
@brivism 9 ай бұрын
but seriously now, it is really very good video! I like straight to the point approach
@paxcoder
@paxcoder 9 ай бұрын
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
@sodiboo
@sodiboo 9 ай бұрын
re: end of video This is my favorite pirated video game
@RobertElderSoftware
@RobertElderSoftware 9 ай бұрын
This is my favorite comment.
@delphicdescant
@delphicdescant 9 ай бұрын
I see you've uncovered the ingenious marketing technique of "please do not illegally pirate my video game."
@novantha1
@novantha1 9 ай бұрын
Is...This not just reinventing Ncurses? It's still remarkably cool that you did it from scratch, though, and is very informative.
@RobertElderSoftware
@RobertElderSoftware 9 ай бұрын
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.
@maxmuster7003
@maxmuster7003 9 ай бұрын
But how to put a monochrome picture into a character set to display the picture inside a block of some character?
@nitrogenez
@nitrogenez 9 ай бұрын
robert didn't say "favourite" in this video, did he? is this... a long awaited new era?
@RobertElderSoftware
@RobertElderSoftware 9 ай бұрын
These allegations are categorically false and I deny them entirely.
@nitrogenez
@nitrogenez 9 ай бұрын
@@RobertElderSoftware i don't believe you
@greatnate29
@greatnate29 9 ай бұрын
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.
@yumnuska
@yumnuska 9 ай бұрын
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 9 ай бұрын
Oh! It needed at about 0:00:35!
@RobertElderSoftware
@RobertElderSoftware 9 ай бұрын
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
@munirluk8047
@munirluk8047 5 күн бұрын
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 5 күн бұрын
Are you having trouble drawing the map or detecting keyboard inputs?
@thechadbuddha
@thechadbuddha 9 ай бұрын
what font is that?
@KeshavKumar-gc9pu
@KeshavKumar-gc9pu 9 ай бұрын
This is my favourite game
@RobertElderSoftware
@RobertElderSoftware 9 ай бұрын
This is my favourite comment.
@Leander_
@Leander_ 8 ай бұрын
Linux is an infinite rabbit hole it seems.
@CeccoPierangioliEuge
@CeccoPierangioliEuge 9 ай бұрын
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.
@sevos
@sevos 9 ай бұрын
- 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**
@puncherinokripperino2500
@puncherinokripperino2500 8 ай бұрын
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.
@MrBenMcLean
@MrBenMcLean 9 ай бұрын
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 9 ай бұрын
"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 9 ай бұрын
@@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.
@sayanghosh6996
@sayanghosh6996 9 ай бұрын
Hey, love your videos. Can you make a video on `col` command?
@volkoivan
@volkoivan 7 ай бұрын
Who tf dislikes this video?? Really interesting
@chickenbonelives
@chickenbonelives 9 ай бұрын
but can it play doom?
@Redditard
@Redditard 9 ай бұрын
Loved the video, sub worth channel! I always wondered this stuff... :) Also, I didn't just illegally pirate the video game :)
@RobertElderSoftware
@RobertElderSoftware 9 ай бұрын
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 17 күн бұрын
How do you legally pirate a video game?
@knghtbrd
@knghtbrd 9 ай бұрын
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.
@varshneydevansh
@varshneydevansh 9 ай бұрын
OMG what a find. Subbed
@66ogg
@66ogg 2 ай бұрын
Wooooo9w AWEEESOO Me
@der.Schtefan
@der.Schtefan 9 ай бұрын
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 ай бұрын
This is a common trait among Canadians. I wonder how Robert pronounces 'milk'?
@der.Schtefan
@der.Schtefan 9 ай бұрын
@@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 9 ай бұрын
@@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 9 ай бұрын
Comment anything accept "This is my favourite comment" 🙂
@RobertElderSoftware
@RobertElderSoftware 9 ай бұрын
Ok, I 'accept' that I must comment that this is my favourite comment.
@ForeverZer0
@ForeverZer0 9 ай бұрын
As I am a 1337 h4x0r, I instantly unsubbed, pirated your game, then resubbed. I just love living on the edge like that.
12 GREAT command line programs YOU recommended!
16:25
The Linux Experiment
Рет қаралды 295 М.
What is the Smallest Possible .EXE?
17:04
Inkbox
Рет қаралды 523 М.
Smart Sigma Kid #funny #sigma
00:33
CRAZY GREAPA
Рет қаралды 30 МЛН
SIZE DOESN’T MATTER @benjaminjiujitsu
00:46
Natan por Aí
Рет қаралды 7 МЛН
Players push long pins through a cardboard box attempting to pop the balloon!
00:31
Lamborghini vs Smoke 😱
00:38
Topper Guild
Рет қаралды 51 МЛН
Is Someone Sending Me Secret Messages?
16:02
RobertElderSoftware
Рет қаралды 4,3 М.
When Your Game Is Bad But Your Optimisation Is Genius
8:52
Vercidium
Рет қаралды 1,5 МЛН
TERMINAL GAME ENGINE! // Code Review
23:59
The Cherno
Рет қаралды 75 М.
Become a shell wizard in ~12 mins
12:25
CODE IS EVERYTHING
Рет қаралды 260 М.
How to Crack Software (Reverse Engineering)
16:16
Eric Parker
Рет қаралды 726 М.
How principled coders outperform the competition
11:11
Coderized
Рет қаралды 1,8 МЛН
Phil Fish: Gaming's Most Hated Developer
19:44
Nello
Рет қаралды 367 М.
Ghostty is Probably The Best Terminal Emulator I've Ever Used
12:26
DevOps Toolbox
Рет қаралды 62 М.
Creating a window - Software from Scratch
1:04:12
Muukid
Рет қаралды 144 М.
ThePrimeagen On Running Linux
9:40
Tech Over Tea
Рет қаралды 284 М.
Smart Sigma Kid #funny #sigma
00:33
CRAZY GREAPA
Рет қаралды 30 МЛН