• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
BHXSpecter

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


65 posts in this topic

However, a lot of tooling, utilities, scripts, etc are frequently console based. So it's quite important to be able to work with standard streams (stdin/stdout/stderr), piped streams, console IO, unattended processing, etc. Console programs are valuable and so is writing them.

 

+1 for this; I think the question itself presents a false dichotomy and this summarises the way things really are quite well.

0

Share this post


Link to post
Share on other sites

The good thing about coding for the console is that you don't need to include dozens of huge confusing libraries when starting out. You can focus on learning algorithms and data structures.

 

As Promit pointed out, console programs can be quite useful. Especially when you need some custom tools in your production pipeline.

2

Share this post


Link to post
Share on other sites

 

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

 

I could not help but get a great amount of laughter out of this rubbish (sorry but that is what it is). Firstly, it is not inefficient. I guarantee that I can do far more at the terminal than you can in your GUI (talking IDE versus text editor for the moment) in a much quicker time, because I'm not limited by brain dead GUIs (e.g., Windows with - besides perhaps powershell was it ? - has basic command line power at best). But I understand this is not about IDE (which for me the only "IDE" I need is a text editor! That's all there is that is needed for experienced Unix [and/or its derivatives] programmers) so I'll avoid getting in to that. But you know what? I've used both and I have years of experience on both (I just happen to prefer Unix based OSs and that is MY preference).

 

You refer to it being time inefficient, yeah? Question for you: did you ever learn assembly? Fluently? If not then I suggest this: you can learn SOO much by doing assembly, even if you get into the basics (registers, bit ops, ...). Does it take more source code to write? Yes, at times, but you also gain so much knowledge and that includes binary (and obviously octal and hexadecimal) which is very useful for programmers. You also learn other very useful things that vastly improve your abilities (not least of you learn to appreciate portability and otherwise how different instruction sets and architectures can and are). And if you did learn it fluently I ask this: why? If you think console stuff is so inefficient (which is hilarious in and of itself, especially if you consider not just time writing but also testing play - you really think graphics will run faster than text output?) then why did you bother?

 

Next, mIRC scripts. First, scripting isn't the same thing as programming but never mind that part. The part that bothers me is you're referring to a single IRC client's API as learning to make graphics/whatever or even programming itself? Really? That is crazy. And further: better alternatives. I think anyone who writes "better alternatives" more or less loses much credibility, at least on the subject in question. No, you should use what works best for the environment and the person (and solution) in question. Better is relative. That's all there is to it. You might tell me C# is better than C or Windows is better than Unix but I already covered that and I'll add this: fine, you prefer Windows, others prefer Windows. Some prefer MacOS and others neither. But no one is wrong there. The only one thing that is wrong is someone telling you that "X is better than Y." and other BIASED claims. Yes, that's all it is: bias.

 

I also find it slightly amusing how you refer to 'terminal window', as if a terminal is only a (or simply 'a') 'window'. But I admit it: I am a stickler. So I'll forget that (and other points that a stickler would point out). What I won't skip however, is this: you know of MUDs? You know, originally text only games that had (and some MUDs still do) huge player bases? So you're saying programming those are inefficient? And no reason to do it? Hardly, with the right aptitude and a little bit of experience you can learn _a lot_! With even more experience (compared to a little) you can still learn a lot, perhaps more than those with only a little experience. On the subject of MUDs though, you do know that games like 'World of Warcraft' (far as I know it has millions of players? I think that is pretty successful, don't you think, especially on a subscription basis?) were at one point called 'graphical MUDs', right? The irony...

 

And in case anyone was doubting it: my view is that NO, it is not a waste of time UNLESS it is not something you're really in to. If you're fine learning only Visual Basic or other simple languages, scripted or not, or if you don't think programming is of use to you, then there is no reason to learn lower level languages let alone console based programming. I think the entire question, actually, is flawed. That is, anyone who suggests that it is or isn't a waste of time, is completely missing something. That something is this: everyone is different, everyone has different needs, wants and everyone has different interests, hobbies, etc. So how can you realistically suggest to someone they are wasting time when they are _learning_ and/or _exercising their brain_? It is a lot better (exercising brain, learning, ...) and far more productive than telling others that they're wasting their time/doing something that is useless. Incidentally, more or less the two are the same, don't you think? Same with no need: if there is no need yet you are doing it then you are essentially wasting your time. Yes, I'm a very literal thinker but that is exactly what it is. Any way, they could shoot back at you that YOU are wasting time (because you're only belittling them/telling them they're wasting time/etc. rather than bettering yourself) but you know what? They would be wasting their energy (much like I am now... but I was bored. Thanks for allowing me to not be bored so I can actually get to - yes, programming, at the console and a console based game in fact).

-3

Share this post


Link to post
Share on other sites

Yes, learn different tools and ways to tackle the same job. Then evaluate what your actual needs are and apply suitable solutions.

 

Some days I have half a dozen terminal windows open and spread over multiple desktops in OSX, because I can quickly flick between them with a swipe of my macbook's track pad and get to the one I need. It stays light weight and takes less system resources than running full instances of Eclipse or XCode which have me spending more time looking at a spinning beach ball on my underpowered macbook than I do actually working on my project.

 

Other days I program with 3 different computers and half a dozen monitors to spread stuff around on.

 

Sort out how [b]You[/b] can make effective use of the resources you have around yourself, and evaluate what new resources are probably good goals for you to work toward.

1

Share this post


Link to post
Share on other sites

I love when the "UNIX" (because let's face it, you are all using Linux anyway and Linux isn't a UNIX) guys pop up to explain that all they need is a text editor and not a fancy IDE. As if emacs or vi are simple text editors -- for most practical purposes, they are IDEs in their own right.

Oh? How wrong you are. Let me see if I can clear this up for you. I have experience (as in I've used them all, for a good amount of years) with all of the following _besides_ various Linux distributions (which I will discuss later [not an OS at all] and also observe the fact that the only OS that can TRULY be called UNIX is AT&T Unix and when was the last time you saw that? I know when I last saw it, do you? And I mean yes I have used it. By the way: did you miss the fact I wrote 'derivatives' ? Maybe you should re-read that, because your statement is rather silly when you actually read it and know what derivative means, which I am all but sure you do):

SunOS (as well as later on Solaris)

FreeBSD

NetBSD

OpenBSD

Do I really need to go on ?

 

If you want I can but I don't see the point on the subject of which OS I use and have used over the years (Unix is a flavour - sorry, I meant family - of OS's anyway). But to make your statements worse: the hilarity is that Linux itself is not even an OS - at all! It is a kernel for an operating system. Big difference. So when someone writes or states they "use Linux" they are referring to the kernel and any number of distributions would fit that.

 

And as for your IDE remark: I only use vi and my own Makefiles. You call that an environment? Eh, OK. If it makes you feel better then so be it. The only "environment" is the shell. Yes, I'm writing from a GUI (you know, personally I think websites make far too much use of scripts but all I can do is use the bare minimum, e.g., noscript so that I can allow just what I need and no more, on a  per use basis) but I don't need to program in it (and not all of my systems even have a GUI - an admin using a GUI on their server is not that experienced, not if we're discussing Unixes. And I do indeed program on my servers as well.). Try again but please next time, if you do that, why not read what I wrote in full (besides missing the word 'derivatives' you also miss context and my main point, being: use and do what works for YOU, not someone ELSE). The sad part is every thing you went on about I already covered (or what I thought should have been enough. I mean heck I even used the word "preference" How is that not sufficient?).

 

Edit: OK, that's a lie. I also use sed, awk, make (go figure with Makefiles), gcc, g++, cpp, others. But those are not (all) necessarily for programming (but they can make things much more efficient and easier). Really, that is how ridiculous you are being with that. Why? Unix philosophy, that's why. Also fixed a word (I originally wrote flavour and I meant family).

 

Another edit: Added a missing word and responding to one other bit I didn't respond to: about "all I need". See, there's this concept that I also wrote about, in my first post in this thread. What is it? Besides using what works for you? Well, everyone is different. You don't like text only? Fine. You think vi is an IDE? *shrug* If that's your view, so be it. You think I actually care what others use? I'm not that pathetic. I wasn't writing about all I need is blah blah in order to insult/belittle others (which it seems to me, although I'm not the best with this because of something I mention below (I'm somewhat crazy), you are trying to do to me, what with your Linux versus UNIX remark (which you also missed some critical things that I already pointed out)). I was using it to make a point which is: you should use what works for you and, as for programming, learning to program text only programs (or in a text environment... I mean obviously assembly can do sound and graphics. I've done it myself) has its uses (but again only if it fits your aptitude and I discussed this as well). But you know what? That you cannot grasp these things is not my problem and in some ways it is actually good. Why? Because if we were all the same we'd be extinct a long time ago (and let's face it, it is amazing humans are still alive) and things would be very boring. I could not imagine everyone being like me. I already am mostly crazy, I don't need more of that. And other people provide different insight, different perspectives, and here we go - differences, period. Differences are vital. It really is that simple. That's why it is good that humans can learn to adapt (and well, what is adapting if it does not involve change and therefore differences?).

Edited by boonix
-8

Share this post


Link to post
Share on other sites


Or maybe even a webapp.

I like that you brought this up.

 

I'll take a step back from "webapp" though and just consider the browser as an OS-independent platform for it's "console" (developer tools javascript REPL) and "GUI" (HTML + CSS). It's more than viable to build browser based tools. You don't need to make the "console or GUI" decision up front if it's trivial to extend a console tool with GUI elements and vice versa. With the amount of capability you get for free in the browser, it's actually surprising more tools aren't built on it.

1

Share this post


Link to post
Share on other sites

Mod note - Boonix, your rants are way off topic. IDE/OS wars have nothing to do with learning writing console/terminal apps.


Personal note - you're also being abrasive, presumptuative, argumentative and offensive. I don't expect that to go over too well with the rest of the community if you insist on sticking to that style of aggressive communication.

I wasn't ranting. I also wasn't trying to start an IDE/OS war. As I wrote: use what works best for you. If I can use console and others can use graphics (or both - which I do use both but not for programming) then why is that any more wrong/correct than otherwise? It isn't. That's my entire point in the first place.  I would ask you how that is starting - let alone encouraging - an OS/environment war, except that I think it is moot: you think I'm ranting yet I was only defending my point (and not trying to start an argument; again: I was not the one who went off and specifically mentioned linux versus unix versus, to - what felt like to me, but see below - trying to goad me into this ...). And if suggesting (in the first post) to use what works for you, personally, and what my personal preference is, is a rant, then perhaps you're right: it won't go with the community but for a very different reason than you think (or at least, there's additional reasons). One more thing: I am sorry if you view any of that as aggressive. The very reason I mentioned I'm not exactly normal (i.e., crazy) is that I could have been interpreting some of it wrong (e.g., he/she being pedantic about particulars when he/she was not entirely correct and missing my valid point about learning is never a waste of time as well as using what works for you.. maybe it wasn't meant to be offensive and I read it wrong). I mentioned that deliberately because I didn't want to cause offence (and I know I interpret things differently. Yes, that includes interpreting things in such a way that are not always based on 'reality'). You know, no one is perfect and I am especially not perfect, and reading is far different from in person (which I am sure we all know), which means my interpreting it wrong is even more likely than not. I acknowledged all of this for these reasons and more. Was that a mistake? I don't know but I apologise for causing offence. With that, I'll drop it as well as likely any other correspondence here. I don't know if deleting account will erase this so I'll give it time so you can see this (because I really didn't want to cause offence and I want you to know that). But bottom line: nothing is worth upsetting anyone (and it seems that we see things very differently.. and that's fine: no one gets along with everyone; I know I get along very well with many others and I know I don't get along with everyone. That's life) and all I can do is try to make amends (which I genuinely tried to do and if that isn't sufficient then indeed it is best we go different paths).

-3

Share this post


Link to post
Share on other sites

 


Do I really need to go on ?

 

You really didn't, but you did anyways.

 

I was referring to the list specifically and context would allow anyone with half a use of a synapse to realise that (much like the other things I wrote). But whatever. I actually don't care enough. You all take offence?  Fine. Not my problem. I already stated multiple times what my entire point was and that I was not trying to cause offence. Minus the little bit in this response, that is. Gone.

-2

Share this post


Link to post
Share on other sites
In addition to half a synapse, one would also need substantial amounts of free time to understand your points.
2

Share this post


Link to post
Share on other sites

In addition to half a synapse, one would also need substantial amounts of free time to understand your points.

 

Just parsing them into sentences is challenge enough for me.

0

Share this post


Link to post
Share on other sites

It was not my intent for this to become a language/ide/OS flame war. I simply wanted to see if I was being antiquated in not agreeing with his point of view. I have always thought of anything you can program as a learning experience, but saw so many say it was a waste that I started to wonder. This thread has made me realize that I'm not antiquated at all, but seem to be among many that think it is a very good thing to learn if only just to have the experience. Thank you all for your feedback on that matter.

2

Share this post


Link to post
Share on other sites
At home, when I do "game programming", which means I'm messing around with some game idea that has, at least so far, never made it into an actual game, I like using graphics to have some nice picture to go along with what I'm doing.

At work, when I'm working on an actual game, I spend about half my time in console applications because I have worked on game servers and game clients about equally. I actually wish I had more time with consoles for some tasks, because most of my work came down to producing the correct stream of numbers in some situation, and a stand-alone console test would have been easiest to work with. Having to load up the whole game because everything's dependent on each other, which means there's no unit tests, is a pain.

Anyway, it seems like I've wasted much more time on graphical applications than on the console, at least so far.
0

Share this post


Link to post
Share on other sites

It was not my intent for this to become a language/ide/OS flame war. I simply wanted to see if I was being antiquated in not agreeing with his point of view. I have always thought of anything you can program as a learning experience, but saw so many say it was a waste that I started to wonder. This thread has made me realize that I'm not antiquated at all, but seem to be among many that think it is a very good thing to learn if only just to have the experience. Thank you all for your feedback on that matter.

The whole "everything is worth learning" line is rather nonsense in reality. If we all had unlimited lives and unlimited time that might ring true but the reality is in many cases, especially when teaching yourself, that you are going to sacrifice learning one thing in order to learn another.

There is the completely realistic possibility that a new programmer could spend 6 months making console based games when they could have been making 2d ones instead, and although they would likely have learned a few things making those console games, I would say the experience gained from making the graphical one would be much more beneficial in the long run.

More experience always tends to be helpful, but not if it has opportunity cost. Its not like making console games past the very basics of learning a language is like learning arithemtic for math. You don't need to know how to make a roguelike in order to make a graphical game. Everything is worth learning but some things are more valuable to your productivity than others, if your goal is to make 3D games you don't necessarily need to master the console to begin that. Edited by Satharis
2

Share this post


Link to post
Share on other sites
did you ever learn assembly?

bro, do u even asm?

 

I'm not sure I'd classify console programming as a waste of time. It helps when you're just starting, but from my (formal) experience, many people that start programming in a console environment end up resenting the language and the environment "Oh, this XYZ language can't do GUI! I wanna GUI, what do I use to GUI?".

 

So what I'd say is: If you're going to learn to code through the console, understand that its just a way to learn, than you're not limited to it, its just some restrictions imposed so you can focus on the basics first and foremost, without getting distracted by shiny.

 

Nothing prevents you from firing Visual Studio/QtCreator, link D3D/OpenGL and try your hand at dynamic global illumination in the first try... thing is, you start from the basics for a reason, programming gets complex really, really fast, having the fundamentals ironed out first makes sure it will be easier to navigate in the swamp that is more advanced concepts such as OOP and patterns, software architecture, project managing, performance-tailored programming, databases, sound processing, image processing, 3D rendering, and a long list of things that you can do with those small silicon chips.

 

Now, if you think you can take it, go ahead! Try whatever advanced topic you're interested on. If you keep at it, you'll learn a lot! Just don't be afraid of stepping back a little to see if you should revisit some other concepts first before jumping to the ocean, the idea isn't getting you out of programming, but getting you interested in it :)

Edited by TheChubu
1

Share this post


Link to post
Share on other sites
Speaking personally, when I recommend starting with console programs I do just mean to learn the basics; whilst you certainly can take it quite far (Rogue-likes and Dwarf Fortress clones for example) I don't really recommend going much further than a "guess the number" type game unless the beginner particularly feels they need additional practice.

Completing "guess the number" should be far enough to have learned the basics of flow control (at least some form of looping and a simple conditional), simple input and output, and perhaps some basic debugging.
1

Share this post


Link to post
Share on other sites

 

It was not my intent for this to become a language/ide/OS flame war. I simply wanted to see if I was being antiquated in not agreeing with his point of view. I have always thought of anything you can program as a learning experience, but saw so many say it was a waste that I started to wonder. This thread has made me realize that I'm not antiquated at all, but seem to be among many that think it is a very good thing to learn if only just to have the experience. Thank you all for your feedback on that matter.

The whole "everything is worth learning" line is rather nonsense in reality. If we all had unlimited lives and unlimited time that might ring true but the reality is in many cases, especially when teaching yourself, that you are going to sacrifice learning one thing in order to learn another.

There is the completely realistic possibility that a new programmer could spend 6 months making console based games when they could have been making 2d ones instead, and although they would likely have learned a few things making those console games, I would say the experience gained from making the graphical one would be much more beneficial in the long run.

More experience always tends to be helpful, but not if it has opportunity cost. Its not like making console games past the very basics of learning a language is like learning arithemtic for math. You don't need to know how to make a roguelike in order to make a graphical game. Everything is worth learning but some things are more valuable to your productivity than others, if your goal is to make 3D games you don't necessarily need to master the console to begin that.

 

True, but if learning while making a 2D game is more beneficial over console, would just diving into 3D and learning what you would have learned doing console or 2D be more beneficial? Where do we draw the line at what can be skipped and what should be learned? Though, I never said "everything is worth learning", but rather I view "everything as a learning experience".

 

A good example, there is a kid making (or attempting to make) an RPG on the site the OP quote came from, but yesterday he posted a question about making a server/client to make it a small online RPG. The way he wanted to do the interface required a host terminal interface (similar to MySQL's mysql -u user -p password), but he skipped learning to do terminal programs or even how to use the main parameters (int argc, char **argv). I stopped helping him because he was wanting his hand held through everything. My point of this example is, that you should have a basic knowledge of the console because you never know when or where you may decide or be told to write up a program that will only be executed from the console.

Edited by BHXSpecter
0

Share this post


Link to post
Share on other sites

Its all a non-issue.

 

If you've become competent at, say, C++ by writing Direct3D Win32 applications, it will take a few hours at most to learn what you need to write console applications. If you've become proficient at writing console applications, and decide to move into Direct3D Win32 applications, apart from the new APIs, everything else you have learned just carries over.

 

As always, learn what you need to accomplish whatever your goals are at the time, and if your goals change, learn the new stuff you need. Trying to become an "expert" on everything just for the sake of it is a fool's errand.

Edited by Aardvajk
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0