Console application worthless?

Pages: 123
In Disch's defense, he wasn't proposing that the OP learn either console applications or programs using the Windows API. He was suggesting the use of a library designed primarily for 2D rendering/audio output/network access known as SFML (SFML, by the way, is not a game programming library but can be used for it), which after setting up is very easy to use. He suggested this to get the OP into a certain frame of mind.

Please be at least a little bit more polite in the future (especially considering your position) when entering a debate, okay? :)

-Albatross
Last edited on
+1 Alby.
how can learning console applications possibly hurt you?? soooo often on game development forums youll see an idiot who doesnt have a game question, they just dont know how to pass a pointer to a function or something stupid like that. if you start immediately in game development youll have to be learning C++ and your library at the same time, which can cause confusion. i think starting with console applications makes the most sense because the only two things that will really only apply to console applications is cout and cin. just follow your book, in the end it will make everything much much easier
Last edited on
I am guessing that you are talking to me? To be fair I spent several months (4-6 hours a day) messing around with game development libraries and already made source codes that use these libraries for working games. After all that I learned hardly anything and was a "copy paste" coder.

Now that I've got my own book and spent only less than a month working on learning the language, I can code my own programs, including small console games. I have learned 1000x more about C++ and how it works by using "console" applications than working with actual 3D game source codes.

I completely agree though that in my position I should be very polite when entering a debate like this, especially with experienced programmers. I definitely did not mean to be rude in any way, sorry if anyone took it that way.

I am just now a very strong believer in the approach I've been taking based on how fast I am learning in comparison to what I was doing before. However, I do agree with what you're saying Albatross and clearly misunderstood Disch a little bit.

I highly suggest that op not waste his time looking through game source codes until he at least understands the BASICS of C++. With that said, whatever approach you use to learn C++ I wish you luck!

@ascii
THIS IS EXACTLY WHAT I WAS TRYING TO SAY!!! The whole point of starting with console applications is so that you can learn how to work with C++ AS A LANGUAGE!! You don't have to code with console programs forever, it's just easier (in my opinion) to teach certain aspects of C++.
Last edited on
soooo often on game development forums youll see an idiot who doesnt have a game question, they just dont know how to pass a pointer to a function or something stupid like that.


That my friend is nota lack of intelligence. That is a lack of knowledge.

@TheNoobie: No worries! Haha life is good mate.
IMHO, the best way to learn C++ is through meditation. That's how I did it.
When I was in trance, Bjarne Stroustrup would appear and teach me everything he knew.
@ultifinitus

thats my point! too many people jump into game development without enough KNOWLEDGE to carry them through even the basics. you need a solid foundation in the language and that can easily and quickly be established in console applications. spend 3-4 months getting the basics of console apps down and then move on to learn Allegro, SMFL, SDL, openGL, directX or whatever library you want to make your games, but if you lack the basic knowledge to perform things like collision detection then you wont get anywhere. perhaps i should be careful before i throw around the word idiot however... xD
@r0shi: lol. Goes well with your name =)
haha dragon ball z right lol??
@both: Yeap :D
Holy thread explosion. Allow me to retort and defend my position.

What I am proposing is to start with a basic pre-made framework for 2D games and use that (instead of the more traditional console) as a testbed to learn concepts and experiment with.

In another thread (through granted not in this particular thread) I posted an example of such a testbed. It basically was a skeleton program which set up a window, loaded an image, and drew it to the screen. A beginner could easily start with that pre-made for them and just learn basic concepts and how to move the image around on the screen.

The logic behind this approach is:

-) You have to learn some kind of medium in addition to the language. It's unavoidable. The C++ language itself doesn't give you any way to do IO, so to do anything meaningful you need to have some other kind of interface. I really don't believe that the iostream interface is any simpler or easier to learn than the SFML interface.

-) For someone interested in game development, learning and testing new concepts in a game-like environment is much more fun and interesting, and therefore is likely to promote faster and easier learning.

-) Console and gamedev programs involve different techniques regarding the way program flow works and I/O is performed. Learning how to do console IO first means that when you move to game dev you'll have to relearn a new way to do things. It's an extra step that IMO is easily skipped. Why spend time learning how to do something you're not interested in?


Now to retort to individual points:

ascii wrote:
soooo often on game development forums youll see an idiot who doesnt have a game question, they just dont know how to pass a pointer to a function or something stupid like that.


So what? You see questions like that when people are making console programs, too. All that means is that they're posting their question on the wrong forum.

You seem to be under the impression that learning language basics is a prerequisite to using a library. Banish that thought -- it's entirely untrue. If anything using a library is a prerequisite to learning language basics (or at least they have to be done at the same time).

ascii wrote:
because the only two things that will really only apply to console applications is cout and cin


<hyperbole>
Right... "that's all"... just cout and cin.

Have you seen cout and cin? Here's a reference page that scratches the surface:

http://cplusplus.com/reference/iostream/

Do you understand all of it? Because I don't... and I've been coding C++ for over a decade.
</hyperbole>

Sure it's easy to use cout and cin in a minimalistic sense. I don't disagree. But it's not really any easier than using sf::Sprite and sf::Event in a minimalistic sense.

With cout, if you want to print some text you can do this: cout << "some text";

With sf::Sprite if you want to draw a sprite you can do this: App.Draw(mysprite);

Both simple one-liners that the beginner can play around with.


TheNoobie wrote:
After all that I learned hardly anything and was a "copy paste" coder.


I don't see that as a negative thing. Think about it:

1) You knew enough to make the game you wanted to make

2) It was probably more fun than you would have had otherwise

But really, it's an unfair comparison. If you go full steam ahead and make games without learning core concepts, of course you won't learn core concepts. I'm not saying people shouldn't learn core concepts.... I'm saying they should use a medium that's more fun for them when they do it.

There's no reason you can't do exercises that practice the concepts your book is teaching you in a game environment. You don't have to do it in a console environment.


I highly suggest that op not waste his time looking through game source codes


I agree. Looking through source code when you won't understand it is a tremendous waste of time.

ascii wrote:
spend 3-4 months getting the basics of console apps down


Ugh. If I had to waste 3-4 months doing console stuff I probably wouldn't have become a programmer. Talk about a bore.
i guess im not a visual learner then because ive managed a good six months of console apps :o
im by no means saying that cin and cout are two simple things, the point is that with iostream you wont be spending forever learning hundreds of library functions and such, you just need these two commands for the actual console applications, and EVERYTHING OTHER THAN THEM can be applied to making games/software/whatever.

also when youre a copy/paste coder you dont actually know how to make a game. you may be able to write 500 lines of code that you memorized, but you wont be able to really make anything original.

game development is generally regarded to be one of the most difficult kinds of programming, so the LEAST you can do is be competent in C++.

clearly well have our different views on this and i dont think well be able to convince the other so lets each just have our own opinions :) <333
I see your point Disch, but I personally get headaches when I have to with code I do not fully understand... I just get a mental blockade and can't continue working. It certainly isn't much harder to work with higher level GUI libs than with the console, but I personally think code that only uses the standard libs is easier to read, and sequential programming in general easier to wrap your head around than event based programming. I personally started with Pascal and did all that ADT stuff before I even knew what the word GUI meant, and I am actually quite happy with that. The result is that GUI's still confuse me even now, but other than that I am feeling quite comfortable with everything I do (well, almost anything. I still don't like the MSLVS_CAPSD_ABBRVS style).
I agree with this Disch user.

I wasted more time than I should have on console applications mainly because my teachers we not competent.
I moved on to GUI before my teacher even taught me what fstream was and soon began fiddling with OpenGL.

I further agree that using cout is just as simple as using the said library functions for any beginner.
cout and cin is a waste of time, more or less. Because, console applications have nearly died out.

This is 2011, not 1970s.
Am I the only one here that actually likes console applications?
I prefer console applications :)

unoriginal wrote:
Because, console applications have nearly died out.


This is a fantastically ignorant comment that actually means "I use console applications all the time, but because I only see a GUI, I assume GUIs are all there is."
Last edited on
i love the simple elegance of console applications. you think about the code, not if your button is 3 pixels off. and you cant waste time on console applications. any time your programming in c++ youre getting better, theres no such thing as wasting "time" unless its arguing on a programming forum about console applications.
Last edited on
Console apps rock! But I am a Linux guy who loves bash...
You're right there, Bill; the sheer power and vast range of options when chaining console application using pipes under a shell like bash is hard to beat.
@Moschops


I Totally agree there is more power to be harnessed in a shell than any GUI I have witnessed, after all the GUI is an in between step
to make it easier for the end user. Whereas I prefer the Terminal to the GUI as you can really understand what the program is doing and add relevant switches pipes etc.. rather than clicking an executable.
Pages: 123