Is working in terminal/console really a waste of time?

Started by
64 comments, last by Satharis 9 years, 10 months ago

A beginner somewhere else asked about learning game dev and was doing terminal/console games. A guy replied with:

If you're interested in game dev... working in the console is a complete waste of time. Don't do it.

I have never considered anything programming-wise a waste of time because I view everything as a learning experience. Unfortunately, I've seen this sentiment again and again. I'm the kind of guy that wants to give beneficial advice to beginners rather than lead them down a path that isn't helpful toward their development as a programmer. So I figured this was the best place to ask if that quote is accurate or not. I'm genuinely curious about this because I only see it in a site or two, but see it repeatedly on them and I have yet to find anyone in the industry that will answer my question when I post it to them via email or twitter.

Advertisement

every programmer has to start somewhere, and lopping in graphics while trying to learn the fundamentals would be insane.

also, modern consoles are rather advanced, and nearly everything has them. hell lynx is a web browser in a freaking console terminal.

Check out https://www.facebook.com/LiquidGames for some great games made by me on the Playstation Mobile market.
No, but I didn't vote in the poll because I disagree with the additional stipulation about people who feel like they wasted their time - most of those people probably benefited from the experience as well, whether they feel like it or not.

Some modern languages, environments and toolkits make the console experience irrelevant, and in that context the question doesn't even really make sense, but when learning a language like C++ console based exercises are an excellent way to learn and practice the basics without some of the additional headaches and distractions that working with windowing and graphics can provide.


As with anything, individuals will get out what they put in, so those with the wrong attitude will minimise the benefits of the experience - but they'll certainly never learn nothing at all from it.


Additionally, the basic skills of working with a console are very useful to have, allowing you to work with a range of different OS and tools which may not always provide a GUI.


(Posted from mobile, please excuse any small formatting or auto-correct errors. )

- Jason Astle-Adams

If you mean drawing stuff to the terminal, it's not that different than drawing to a screen. A terminal has a frame buffer, with characters instead of pixels, all this can be abstracted into update, draw, display routines. There's nothing special or unusual about drawing to the terminal, and everything you learn there can be applied to graphical games as well, you still have an event loop, the game logic is identical, and so on. Sure, there are GUI frameworks today that can be set up in a few clicks, but that doesn't mean terminal-based games can't teach you anything.

And even if you're not writing a text-based or ascii-graphics game, you will certainly want to at least be familiar with how to interact with the console (both manually, i.e. through the shell, and also programmatically) for all the tooling surrounding your game (or any software in general), especially automated tasks like packing assets, converting a bunch of models and textures, setting up your testing platforms, and so on, which probably won't have a convenient GUI to do it. Really, having an understanding of how to integrate console programs into your workflow is an essential skill, though admittedly not the most pressing one for a new developer.

“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”

I just finally felt like I had to ask because everyone acted like I had an antiquated view because I still recommend people make a few terminal programs and games just to get a good grasp on languages and the key things that are true between all games. Just glad to see I'm not as antiquated as others have told me on different sites.

I'd actually like to hear from some of the people who feel that console programs are a waste of time -- obviously for certain language or technology choices a console isn't available or isn't the normal approach, but for more traditional languages I'd like to hear some of the reasons people consider it a waste, and what approaches they might suggest instead.

Anyone willing to explain that viewpoint? cool.png

- Jason Astle-Adams

Actually I can't think of a more fun and efficient way to learn a language. Many people dive into a certain API or framework right after their hello world tutorial because they want fast results. As always the devil is in the details and a convenient API doesn't make up for lacking basic skills. However I'm with jbadams on this. In the end it doesn't matter that much which project you messed with when you started out.


If you mean drawing stuff to the terminal, it's not that different than drawing to a screen.
INB4 TTYs with indirect lighting and ambient occlusion.

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator


INB4 TTYs with indirect lighting and ambient occlusion.

It's probably been done... after all, converting videos to ascii is a thing, so you could technically hook up a terminal to a graphics pipeline and there you go. But I really meant the architecture in general, obviously you usually go for different forms of artistic output with such limited resolution (top-down view, for instance).

“If I understand the standard right it is legal and safe to do this but the resulting value could be anything.”

When learning C++ I started off in the console, like most of us do, and it was of course a great learning area for a beginner - NOT a waste of time.

However, I really started to understand games when I started modding Half-Life 1, where the code for a real-time game loop was already written, and I could insert small sections into this existing real-time system. At the time, I didn't even understand how game loops worked, or how their event callbacks worked, or the logic behind the flow-of-control in general... but I still was writing interactive real-time gameplay!

Jumping around in as many different programming environments as possible is going to be beneficial.

INB4 TTYs with indirect lighting and ambient occlusion.

I was talking the other day to someone about Watch Dogs (IIRC, I think), and they mentioned it has an ASCII-mode renderer easter egg in there ;)

This topic is closed to new replies.

Advertisement