Jump to content

  • Log In with Google      Sign In   
  • Create Account


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

  • You cannot reply to this topic
65 replies to this topic

Poll: Waste of Time? (82 member(s) have cast votes)

Is programming console programs a waste of time?

  1. Yes! Complete waste of time! (6 votes [7.32%] - View)

    Percentage of vote: 7.32%

  2. No! Only a waste to those who feel they wasted their time. (76 votes [92.68%] - View)

    Percentage of vote: 92.68%

Vote Guests cannot vote

#1 BHXSpecter   Members   -  Reputation: 1118

Like
0Likes
Like

Posted 31 May 2014 - 03:56 PM

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. 


"Through vengence I was born.Through war I was trained.Through love I was found. Through death I was released. Through release I was given a purpose."


Sponsor:

#2 slicer4ever   Crossbones+   -  Reputation: 3205

Like
2Likes
Like

Posted 31 May 2014 - 05:43 PM

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.

#3 jbadams   Senior Staff   -  Reputation: 17235

Like
7Likes
Like

Posted 31 May 2014 - 06:16 PM

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

#4 Bacterius   Crossbones+   -  Reputation: 8158

Like
1Likes
Like

Posted 31 May 2014 - 06:35 PM

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.


The slowsort algorithm is a perfect illustration of the multiply and surrender paradigm, which is perhaps the single most important paradigm in the development of reluctant algorithms. The basic multiply and surrender strategy consists in replacing the problem at hand by two or more subproblems, each slightly simpler than the original, and continue multiplying subproblems and subsubproblems recursively in this fashion as long as possible. At some point the subproblems will all become so simple that their solution can no longer be postponed, and we will have to surrender. Experience shows that, in most cases, by the time this point is reached the total work will be substantially higher than what could have been wasted by a more direct approach.

 

- Pessimal Algorithms and Simplexity Analysis


#5 BHXSpecter   Members   -  Reputation: 1118

Like
2Likes
Like

Posted 31 May 2014 - 11:30 PM

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.


"Through vengence I was born.Through war I was trained.Through love I was found. Through death I was released. Through release I was given a purpose."


#6 jbadams   Senior Staff   -  Reputation: 17235

Like
0Likes
Like

Posted 31 May 2014 - 11:54 PM

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



#7 ilreh   Members   -  Reputation: 281

Like
0Likes
Like

Posted 31 May 2014 - 11:56 PM

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.

#8 TheChubu   Crossbones+   -  Reputation: 3705

Like
0Likes
Like

Posted 01 June 2014 - 12:54 AM


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


#9 Bacterius   Crossbones+   -  Reputation: 8158

Like
0Likes
Like

Posted 01 June 2014 - 01:02 AM


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


The slowsort algorithm is a perfect illustration of the multiply and surrender paradigm, which is perhaps the single most important paradigm in the development of reluctant algorithms. The basic multiply and surrender strategy consists in replacing the problem at hand by two or more subproblems, each slightly simpler than the original, and continue multiplying subproblems and subsubproblems recursively in this fashion as long as possible. At some point the subproblems will all become so simple that their solution can no longer be postponed, and we will have to surrender. Experience shows that, in most cases, by the time this point is reached the total work will be substantially higher than what could have been wasted by a more direct approach.

 

- Pessimal Algorithms and Simplexity Analysis


#10 Hodgman   Moderators   -  Reputation: 27664

Like
2Likes
Like

Posted 01 June 2014 - 05:18 AM

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 ;)



#11 Spirrwell   Members   -  Reputation: 258

Like
2Likes
Like

Posted 01 June 2014 - 06:03 AM

I started writing programs in the console in C++ as well. Do I feel like it was a waste of time? Not exactly. I think starting with console programs helped me to grasp the fundamentals of programming, but I do wish I had worked with something more graphical.

 

The console helped me learn the basics like if, else, classes, and such. But it took me a LONG time. I couldn't grasp the concept well because there wasn't much there for me to work with. Without my good friend YouTube, I don't think I would have learned. I wish it was explained to me how other stuff works, like in order to start making basic games you should look into OpenGL\DirectX and libraries associated with it.

 

I didn't really begin to grasp everything until I switched to C# for a while messing around with the XNA Game Studio. It was TREMENDOUSLY helpful. Because everything was right there and I could finally see how things worked. Do I think learning how to program in the console is a complete waste of time? Not at all. But if you're looking to go into game programming, it may be more beneficial to start with something else.

 

You have no idea how excited I was when I re-made Pong in C# with XNA. It was an amazing feeling, like something was actually coming together. It was the simplest of games and it was a wonderful start. Then I moved back to C++ with the SDL library and I felt even better. I wish I had started with making a simple Pong clone in the first place.

 

I see a LOT more use for the console now that I've actually learned quite a bit. But starting out with it, I thought the console wasn't all that helpful. I think what actually made me like it was making a simple text adventure game. That was the kind of idea I needed to like the console. Because up until then I couldn't think of much use for it. All I could think was what in the world was it good for? Although now I think the console is pretty amazing. This is my long answer, I wish the poll had a third option.

 

Also, I think it may be important to mention, that I didn't have a teacher, and that may skew my view a bit. YouTube was my teacher. I was learning on my own.


Edited by Spirrwell, 01 June 2014 - 06:06 AM.


#12 rip-off   Moderators   -  Reputation: 7652

Like
4Likes
Like

Posted 01 June 2014 - 08:44 AM

The reason I would recommend starting with the bare minimum is that it allows the beginner to focus on learning the core concepts first. In most languages, a beginner who starts with graphical libraries has to deal with more mystery boilerplate code at the start, and that this could result in a way of thinking where such code is accepted more readily. I believe that programmers starting with such a mentality are at risk of avoiding understanding such code and instead developing programming techniques where such code is copied from another source and tweaked until it acts as required.

Notice that I didn't mention the console specifically. I don't think that the console has any magical abilities, but rather it is the presence or absence of "ignore this for now" supporting code (or at least minimising such code). If the language they are using has built in, simple support for graphics then I don't think there is the same risk, such as many of the old Basic dialects or perhaps if they're learning Javascript in a web browser.

I could be wrong, but that is what I think.

Edited by rip-off, 01 June 2014 - 08:45 AM.


#13 Aardvajk   Crossbones+   -  Reputation: 5269

Like
1Likes
Like

Posted 01 June 2014 - 09:25 AM

I've always felt that learning C and then C++ at the command line was an excellent start, since you are then far more aware of the process of compiling translation units, linking them together etc. I feel had I started with IDEs, I may never have gotten a grasp on exactly what the IDE was doing for me behind the scenes, which has often been useful knowledge when things go wrong.

 

But what is a "waste of time" anyway? Sounds like the kind of blanket opinion that gets thrown around without a solid basis.



#14 mhagain   Crossbones+   -  Reputation: 7436

Like
0Likes
Like

Posted 01 June 2014 - 09:32 AM

I've always felt that learning C and then C++ at the command line was an excellent start, since you are then far more aware of the process of compiling translation units, linking them together etc. I feel had I started with IDEs, I may never have gotten a grasp on exactly what the IDE was doing for me behind the scenes, which has often been useful knowledge when things go wrong.

 

But what is a "waste of time" anyway? Sounds like the kind of blanket opinion that gets thrown around without a solid basis.

 

I think the OP is talking about something completely different: writing a console-mode program, which may (or may not) be done using an IDE.


It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.


#15 Promit   Moderators   -  Reputation: 6106

Like
0Likes
Like

Posted 01 June 2014 - 10:46 AM

Kicking this over to General.



#16 ferrous   Members   -  Reputation: 1544

Like
0Likes
Like

Posted 01 June 2014 - 11:36 AM

I wouldn't call it a 'complete waste of time', but I do believe it's an entirely unnecessary step.  It isn't that hard to work with pixels instead of ascii characters, and making a graphical ascii game, one is going to spend a lot of time looking at ascii charts picking out things to represent monsters or what have you, and honestly, that really is knowledge that's mostly not ever going to be used ever again.



#17 L. Spiro   Crossbones+   -  Reputation: 12240

Like
0Likes
Like

Posted 01 June 2014 - 03:25 PM

Anyone willing to explain that viewpoint?


It’s not something I would ever recommend.
While it is not necessarily a waste of time, it is an inefficient use of time considering all the alternatives.

If you want an easy way to draw better-looking graphics, mIRC Script and Q-BASIC are better alternatives, and even C# is beginner-friendly.
If you want a simple no-cruft way to explore loops and logic, mIRC Script’s syntax is quite similar to C but the compiler is much more beginner-friendly and most of the environment is already prepared for you so all you have to do is open the code window and code. No main loops, terminal creation, key-scanning/reading, etc.
If you want to learn more specifically about game programming rather than programming in general, modding a game is much more valuable.


Terminal window coding in preparation of learning game programming is only a way to trim cruft and focus on more digestible bits here-and-there, but the problem is that it doesn’t serve any one dish better than the alternatives do. Even as a complete package, most alternatives trump it, as they overall offer basically everything terminal programming does and more. Modding will still hold your hand over looping and logic but also give you a more motivating experience related to actual games.


It may not be useless, but there is no reason to ever do it.


L. Spiro
It is amazing how often people try to be unique, and yet they are always trying to make others be like them. - L. Spiro 2011
I spent most of my life learning the courage it takes to go out and get what I want. Now that I have it, I am not sure exactly what it is that I want. - L. Spiro 2013
I went to my local Subway once to find some guy yelling at the staff. When someone finally came to take my order and asked, “May I help you?”, I replied, “Yeah, I’ll have one asshole to go.”
L. Spiro Engine: http://lspiroengine.com
L. Spiro Engine Forums: http://lspiroengine.com/forums

#18 BCullis   Crossbones+   -  Reputation: 1813

Like
2Likes
Like

Posted 01 June 2014 - 04:13 PM


If you want to learn more specifically about game programming rather than programming in general, modding a game is much more valuable.

 

This group right here is where most of the facepalm moments come from in the "For Beginners" section of this site, though.  I think this group, more than any other, needs the console programming time to get past the CS101 problems.


Hazard Pay :: FPS/RTS in SharpDX
DeviantArt :: Because right-brain needs love too

#19 Lith   Members   -  Reputation: 324

Like
2Likes
Like

Posted 01 June 2014 - 04:15 PM

 

Terminal window coding in preparation of learning game programming is only a way to trim cruft and focus on more digestible bits here-and-there, but the problem is that it doesn’t serve any one dish better than the alternatives do. Even as a complete package, most alternatives trump it, as they overall offer basically everything terminal programming does and more. Modding will still hold your hand over looping and logic but also give you a more motivating experience related to actual games.


It may not be useless, but there is no reason to ever do it.

 

I agree with you but there are some alarm bells going off, I fear your advice may be misunderstood.

 

Notice what I highlighted. If the person is learning game programming, then yeah, I completely agree. But it seems to me like this advice already assumes the person knows a language already. If a person wants to learn a new language, say C++, then I feel that they should get some console/terminal experience before they move on.

 

Better learn how to #include and cout before you try linking graphics libraries and allocating memory.



#20 Prototype   Members   -  Reputation: 1278

Like
1Likes
Like

Posted 01 June 2014 - 04:39 PM

Game programming has nothing to do with graphics, sound hardware or anything. You could make a chess program and move the pieces on a real board, for example.

 

My first ever game was made on an electric typewriter, by sheer lack of a real computer (mind you, this was the pre- home computer era). I would draw cave-like structures on paper and hold a key on repeat while twisting and turning the paper-feed barrel to steer through the 'level'. It wasn't a whole lot of fun, but it was a game. As far as I'm concerned, limitation will only sparkle your imagination and perserverance.
 

So yes, I think the console is a fine place to start. You learn how to program, and that's just enough at that point. If you cannot enjoy that, you might not really be interested in programming.







PARTNERS