Sign in to follow this  

Which Language should I use?

This topic is 4691 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello. I'm working on a FPS project (see my homepage), and we've been considering various languages & dialects (BASIC, C++, Pascal/Delphi, etc.), but we can't come to a conclusion. Also, it would take a very long time to fully master anything but BASIC, so what should we do?

Share this post


Link to post
Share on other sites
is the project only for a hobby?
if it is.....do it in basic...
but if you want make it commercial, it may be a better idea to do it in c/c++.... because almost all the tutorials and books used C/C++ as the basis languaje.

Share this post


Link to post
Share on other sites
This is going to be the best freeware, downloadable (potentially), online FPS known to mankind. But, the only fee should be for more features or something...in short, this is pretty much in the middle of commercial and hobby programming.

Share this post


Link to post
Share on other sites
Sorry - I accidentally double-posted the topic.

Anyway, thanks. At least I have balls of steel to go with the burden of learning C++.

Also, remember to post some of your opinions on the Z-Games forum (my homepage), and register.

Share this post


Link to post
Share on other sites
Learning C++ was a long and fun process for me. I find the best way to learn the language is to try every new concept you learn in a program until you have a good grasp of the concepts. It also helped that I had an excellent book ("Problem Solving with C++, The Object of Programming").

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Considering your lack of programming experience, I think an FPS is way over your head. You should rather focus on learning OpenGL or DirectX with C++ (don't waste your time with BASIC) and put together some demos (or simpler games) before attempting a large project.

Your first several games are going to be chock full of mangled, unreadable, unmanagable source code. It's best not to learn how to organize code on a large project.

Also, with your lack of programming experience comes the lack of ability to effectively and efficiently debug all the problems that will come up along the way. You need to learn that skill on smaller projects.

"I find the best way to learn the language is to try every new concept you learn in a program until you have a good grasp of the concepts."

Exactly. When I first started coding, I'd learn new concepts by inventing a game and implementing it. These were simple (keyword there) and often stupid games but that's all you need to learn concepts.

You simply can't learn programming by starting with a highly complex game that requires highly complex concepts to implement.

You need to step back and try to be a bit more practical about how you go about learning to make games.

Share this post


Link to post
Share on other sites
so what if you are only capable of basic? If you mean visual basic, I strongly reccomend directx9 development using the .net platform. Visual basic has its similarities to the the visual basic 6 predeccessor, but it was remade with the .net platform and thus, it should be free of what has been making it a language of fools. I have developed vivid game scenarios in real time. Consider vb.net a friend instead of a lack of expertise.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
You shouldn't be "only capable" of anything. That simply means your more focused on syntax than concepts which is exactly the wrong way to go about learning how to code. At my work I've used at least four different languages for various projects. I learned one of them (C#) on the job while working on the project that needed it. C++ is simply the industry standard and you should start with that. You can always learn Python or whatever, later. BASIC is pretty much an unneccessary step. C# has made Visual Basic irrelavent unless you've already learned VB or must work on a project which already uses VB.

VB is not intended for games. It's a rapid applications development tool.

If you know C++ you can code in any language.



Share this post


Link to post
Share on other sites
Quote:
Original post by BlackWindbut if you want make it commercial, it may be a better idea to do it in c/c++.... because almost all the tutorials and books used C/C++ as the basis languaje.



Quote:
If you know C++ you can code in any language.

That ain't true.


Yeah.. but If all the other use something.. and you just don't like it.. why not stick to your own thing? Nowadays, it does not matter anymore what Language you use . The hardware card takes much of the load, and the DirectX or OpenGL calls are basically the same- whatever language one uses.
(OK- C is mainstream, but look at Delphi 2005- Pascal and C are now both in one program.)

greetz, and lots of happy and Productive coding, M.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
Considering your lack of programming experience, I think an FPS is way over your head.


Amen. Given that you haven't even written Tic Tac Toe in BASIC, the chance that you could successfully write a FPS in ANY language is exactly zero.

Start with smaller games first. Go with stuff like Tic Tac Toe, Pac Man, or Tetris. Teach yourself OpenGL and/or DirectX. Study up on game engines. Then look into writing something like a FPS.

If you are interested in C++, check out this book. It covers things at a reasonable pace for beginning programmers.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
In response to: if you can code in C++, you can code in anything - "That ain't true."

You must be new because it exactly is. C++ allows you to do anything. Other languages all contain subsets of the concepts you can learn in C++. I use all the concepts I learned in BASIC in C++ but it's impossible to use all the concepts I've learned in C++ in BASIC. BASIC simply does not support them.

"Nowadays, it does not matter anymore what Language you use . The hardware card takes much of the load, and the DirectX or OpenGL calls are basically the same- whatever language one uses."

More misguidedness from the "I just got here, where's my GHZ?!" camp.

Believe it or not there are still systems which do not run at 3.6Ghz or have GeForce FX Ultras or support OpenGL/DirectX. And, believe it or not, you do actually have to know the concepts which those APIs wrap into nice blackboxes before you can really make them do things. What good is an integrate button if you have no clue what it's good for much less when to use it? If you don't understand the inner workings of the hardware you're going to waste a lot of time trying to get DirectDraw to rotate things and be entirely confused as to why you can't.

John Carmack would not be where he is today if he did not write Wolfenstein 3D. Anybody who's paying attention realizes what a tight logical progression through the concepts of 3D all his games are. He didn't miss a step and you simply can't skip one. Otherwise, you'll always be dependent on someone else.

In that "simple" game there is a vast amount of concepts you must learn to create it which then are applicable to every game you will ever make and are stepping stones to more advanced games.

http://www.icarusindie.com/DoItYourSelf/rtsr/realtime3d/lessons34-38.php

^^ how to create Wolf3D. There are also more indepth tutorials based on Wolf5K.com in the javascript section of that site. That section is mostly translation.

The other bottom line is your bottom line. The lower level you go the more valuable you are. If you don't understand the lower levels of how things work, you are very disposable. You'll always be behind the curve and just keep slipping further and further into obsolecense.

http://www.icarusindie.com/Literature/ebooks/

More free programming books.

Remember: any code monkey can use blackboxes. It takes a real programmer to write those blackboxes.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
Other languages all contain subsets of the concepts you can learn in C++.
Um... no.

C++ doesn't have tuples. Or reflection (though reflection libraries do exist, but they're awkward - you have to derive all your types from one of theirs, for instance - and it's not language native). Or introspection. It has no package functionality, just namespaces. Its approximation of generics - templates - result in not insignificant bloat if instantiated with multiple types.

This is not to say that it is not powerful, just to remind you to watch the hyperbole. Just because you don't know of features that C++ doesn't have but other languages do doesn't mean they don't exist.

Quote:
The other bottom line is your bottom line. The lower level you go the more valuable you are. If you don't understand the lower levels of how things work, you are very disposable. You'll always be behind the curve and just keep slipping further and further into obsolecense.
Debatable. The current trend appears to be imbuing both the operating environment and the compilation process with more information and/or intelligence, allowing them to make a variety of automatic optimizations that yield code translated from very high levels which rivals hand-crafted code in performance. It can be argued that the demand for truly low-level developers is shrinking, perhaps soon to be constrained solely to operating systems and developer tools. That is a very small subset of all written code, most of which resides at a much higher application level.

Quote:
Remember: any code monkey can use blackboxes. It takes a real programmer to write those blackboxes.
Debatable. Some "code monkeys" can write black boxes, but can never pull together boxes from disparate vendors to create a usable product - witness the plethora of "my own engine" projects, but the dearth of "my completed game" announcements.

But all this is completely beside the point. For a beginner, it is more important to provide an environment in which relatively rapid results can be obtained and good programming practice can be learned. C++ is not that environment, IMO.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
In response to: if you can code in C++, you can code in anything - "That ain't true."

You must be new because it exactly is. C++ allows you to do anything.
I'm tempted to link the Lisp is King thread, Kalvin.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
In response to: if you can code in C++, you can code in anything - "That ain't true."

You must be new because it exactly is. C++ allows you to do anything.

That doesn't mean knowing C++ allows you to code in anything.
C++ is Turing-complete, yes, so you can in principle do anything in C++.

But some languages have *nothing* in common with C++, and you might even find that knowing C++ is a big hindrance when learning those languages.

Be careful calling other people "new" or correcting them when what you're saying just isn't true. :P

Check out Lisp, Prolog or ML, just to begin with. Those have absolutely nothing in common with C++

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
In response to: if you can code in C++, you can code in anything - "That ain't true."

You must be new because it exactly is. C++ allows you to do anything. Other languages all contain subsets of the concepts you can learn in C++.


A truly absurd generalization, which is ignorant of differing programming paradigms and language-specific idiom. Go try writing something in Lisp and tell me about how a C++ background enabled you to just pick it up instantly.

Quote:
"Nowadays, it does not matter anymore what Language you use . The hardware card takes much of the load, and the DirectX or OpenGL calls are basically the same- whatever language one uses."

More misguidedness from the "I just got here, where's my GHZ?!" camp.

Believe it or not there are still systems which do not run at 3.6Ghz or have GeForce FX Ultras or support OpenGL/DirectX.


Believe me, I know it. I develop for mobile (i.e. cell phones). They most assuredly do not offer processing power that comes anywhere near anything available on a desktop. Do you know what I use on them? J2ME. Yeah. As in Java 2, Mobile Edition. It exists and is a very popular platform, with good reason.

Quote:
And, believe it or not, you do actually have to know the concepts which those APIs wrap into nice blackboxes before you can really make them do things.


Er no, you really, really don't. That's what the APIs are for, you know. It has been decades since computer time was more valuable than human thinking time. Your time as a programmer is much better spent getting things to work than trying to "really do things" (whatever you think that means?) right from the get-go. And it axiomatically takes less time to do so when you use tools which make it easier to do so.

Quote:
What good is an integrate button if you have no clue what it's good for much less when to use it? If you don't understand the inner workings of the hardware you're going to waste a lot of time trying to get DirectDraw to rotate things and be entirely confused as to why you can't.


I can't even make sense of that. If you don't know what you can or can't do with an API, you look up its documentation. If it doesn't provide a particular bit of functionality, the reason is "that's not part of the API's design philosophy".

Quote:
John Carmack would not be where he is today if he did not write Wolfenstein 3D. Anybody who's paying attention realizes what a tight logical progression through the concepts of 3D all his games are.


Define "concepts of 3D".

Also, consider how much more processing power desktops have today than they did when Wolfenstein 3D was released. Now consider the probability of anyone in For Beginners successfully completing anything as "good" as W3D, even on today's hardware with tools that take advantage of the available power.

Quote:
He didn't miss a step and you simply can't skip one. Otherwise, you'll always be dependent on someone else.


Good heavens. Lord forbid any of us should be dependant on anyone else. I suppose you would like us to code up our own web browsers from the ground up, too, just in order to have the priviledge of replying to you.

As for the rest - Oluseyi said it better than I could.

Share this post


Link to post
Share on other sites
Whoa. I wasn't expecting this big of a reception. Anyway, to hell with odds - I'll try to learn as I go, if possible, and maybe write tic-tac-toe while I manage whatever I can with the FPS. If I can't, I'll just stumble back here and just learn. How does that sound?

Share this post


Link to post
Share on other sites

This topic is 4691 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

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