• Advertisement
Sign in to follow this  

Help! I'm trying to make a game.

This topic is 1977 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

What you're asking is essentially the same as asking if english or french is the best language to use to say "Hello" so someone. "Allo" might be 1 letter shorter than "hello", but that doesn't mean that french is better (even at saying hello). This is where context and abstractions come into play. One judges a given language based on complexity/processing, ease of learning/understanding and how fast you're able to read, speak and write something with it. In those regards, C++ and C# are so similar that it doesn't really matter too much which you learn - especially since you'll eventually know both of them eventually.

Being 13 years old, you actually have a major advantage over people like myself - time. You'll probably end up knowing 10+ languages, whereas I probably only got time for half. When you start doing programming professionally, you will most likely learn both C++ and C#, because when you've learned 1 language, it's much easier to learn a second one. Most serious programmers end up knowing maybe 7+ different languages, in addition to knowing mountain climbing, karate, economics, driving a car or whatever. You don't have to worry about not having the time to learn more than one thing. It depends on your focus.

But, regardless of how many languages you know, that's not as important as learning the methodology of programming. Programming science, essentially. How to approach any given problem, make it readable to other people (or yourself), figure out a solution algorithm (recipe) and only then comes the actual language itself with which you solve the problem.


Here's what I would do, if I were you:

1. Figure out which language is more interesting, by getting an introduction to both. (Youtube is your friend.)
2. Simply choose that language. If you can't make up your mind, then just flip a coin and go with what the coin says. If you cannot decide, then neither choice will be that bad anyways.


Good luck and have fun. smile.png Edited by DrMadolite

Share this post


Link to post
Share on other sites
Advertisement
@Kripis I'm not stereotyping you. I don't even know you, so I can assume you act at least similarly to other kids I encounter on the internet or on TF2. Edited by MrJoshL

Share this post


Link to post
Share on other sites
I heard somewhere (dunno if that is true), that the boy who programmed the first prince of persia game was 14 at the time. And I have acquaintances who programmed algorithm for integer division on calculator in junior school (10 year old). So in my book, he being 13 is not the issue here.

Share this post


Link to post
Share on other sites

@Kripis I'm not stereotyping you. I don't even know you, so I can assume you act at least similarly to other kids I encounter on the internet or on TF2.


That is pretty much the definition of stereotyping :D

Share this post


Link to post
Share on other sites
First off, I applaud your willingness to teach yourself; a skill I am very happy I learned, and learned early...

Secondly, I'm not going to say you're too young, and you don't know this, or that, because like everyone else here, I don't know you, but I do know that you're making a good 'first' step. I always find it funny how people talk about coding requiring math skills, because in the 25+ years I've been doing it, it's been such a minor part, I felt the math schooling was mostly wasted (in the sense that I don't use it... Learning anything is useful : ).

As for myself, I also started around your age. I taught myself Basic initially, then picked up a C++ book, consumed it cover to cover, and later was able to afford a compiler (Turbo C++ for DOS), and put it to use : ) So I come from a standpoint of, 'I did it, you can too', as to the always-too-common 'I didn't do it, so you likely can't'. So again, I learned C++ 25 years ago, and in my day job, I use C++... It's possible it'll become 'outdated' by the time you're done with school, but it's unlikely, so that's a point in C++'s favor.

However, C++ is fugly... The syntax is fine, and has been adopted just about everywhere else, minus some minor things, like class vs method/variable layouts, but it's an old language, and it shows... Many of the libraries people use, including Windows API's, STL, etc, are all inconsistent, which includes naming conventions. So that's a point in C++'s 'unfavor' heh. Newer languages are more consistent, both in usage (In nearly every newer language, every object is a class, and is always allocated), and in API's. This may seem moot to some of you, and it is to me, but to someone learning for the first time, consistency is great. Even when I learned iOS stuff a few years ago, I was amazed at how clean Objective C was.

As for C#, I glanced at it when it was new, and that was about it, but as a newer language, it's more consistent, and has a lot of MS Backing.

As for Java, Ewww... : )

So in short, it looks like I'll suggest C++, as it's what I use, and it's awesome... But really, my suggestion is simple; learn them all : ) And start with something new. If it was an option, I would say Objective C or Java, because right now is still a really good time to get involved in mobile development... If you're sticking to a PC, I suggest C#, just because it'll be easier to learn, and while you won't have as much... freedom (C++ is still more direct, and C# is mostly Windows based), you can move to the others as needed.

I'll end with a (butchered) quote from one of the few people I worked with that I also respected. 'A Computer Scientist is a problem solver; the language is just a tool'... In other words, someone earlier put it pretty succinctly, but basically, you're learning to solve problems with computer science methodologies; those are the skills that last. The language you use is just the way you do it.

-Alamar

Share this post


Link to post
Share on other sites
Tutorials aren't really useful unless you are looking for something peculiar that you have absolutely no knowledge in. For example you want to implement an AI for Pac-Man and want to use a smart algorithm to achieve it or how to implement parralax scrolling. Otherwise just pick a language you like using and feel proficient with and just experiment.

There's no better way learning than diving in. It's pointless to read books and follow tutorials if you do not apply them practically.

Besides Kripis, you seem to be conflicted with your choices. I remember helping you out with some basic console application in C++ and you barely knew what an array was. I think you have all the tools necessary to start your own small games, this thread has MORE than answered your concerns. Edited by DZee

Share this post


Link to post
Share on other sites
You know what? I am tired of the reputation plummet. I'll still be realistic here, but at least it optimistic realism not cynical realism. You are 13. You want to program a computer game as a hobby. You don't know any programming. You want to. Programming is not as hard when compared to using programming to program something as complex as a game. I don't know you. I have no idea if you have an aptitude for this type of thing. If you do, I would venture to say that you very well could make a 3D computer game, as long as you learned the math on your own, otherwise it would take much longer. I won't lie, its not rocket science. Vectors and transforms are indeed challenging, and are far from everything, but definitely don't require calculus unless you want to get really fancy and/or very efficient, but it is not necessary for learning. The more math skills, the better off you are. I think you could probably make one, if you were interested enough. One thing you should know, however, is that the time investment is a lot. Also, don't go advertising your age on the internet, especially on technical/programming forums. People (like the sometimes-cynical-me) may make fun of you and/or discourage you, because generally speaking, this may not include you, but kids your age aren't exactly capable on any level to do any type of programming (experience, time investment, aptitude, determination). But, hard work is not everything. A train can move at how ever many horsepower it can go to, but won't go anywhere intended or good unless it has tracks. Intelligence is the tracks. Learning how to program takes hard work and dedication. Learning how to program well takes hard work, dedication, and intelligence.

Share this post


Link to post
Share on other sites
I agree with Bacterius, in saying that it depends of what you want to make.

It is actually possible to make a nice 3D game with no direct scripting and no personal use of math by using programs which do all this for you. Keep in mind that this is in the context of a newbie wanting to make a game and I am not talking about an AAA marketed game.

Knowing how to script programming languages and using math is very helpful to increase capabilities, but there are games which can be made with little or no math by using programs.


3Ddreamer

Share this post


Link to post
Share on other sites
It's good to build up programming experience from early age.
Start with building text-based rpg game or whatever, but before you get into 3D and all that stuff, make sure you are familiar with linear algebra and geometry.
Just knowing how to solve for X won't do. You need to know how to describe 3D models in mathematical equations, vectors and much more.

Share this post


Link to post
Share on other sites
right now i only know one language which is java.I did a research about the appropriate programming language but all i saw was c++.Many company requires c++. I continue using java just to know the concept of game programming and then i will switch to c++ when im done with this project.
this is my opinion only.

Share this post


Link to post
Share on other sites
There are still a few companies making games and simulations (gameplay types) in java and it has a huge collection of existing libraries, many open source, so java still is an option.


3Ddreamer

Share this post


Link to post
Share on other sites

There are still a few companies making games and simulations (gameplay types) in java and it has a huge collection of existing libraries, many open source, so java still is an option.


3Ddreamer


The number of companies using Java (directly or indirectly) for games is growing actually, every single game on Google Play contains atleast some Java code (The entrypoint in an Android app has to be written in Java (Allthough some engines hide that part from you)

Share this post


Link to post
Share on other sites
I am 13 as well, and I started learning C++ when I was 11.

I think you should learn C++ first because it is a low end language and then move on to C# (a higher level language). In fact, many companies require you to know C++ even if you are knot going to use it at all. (My dad's an engineer for example, and he still needed to learn C++ even though he use only Matlab and Fortran and other engineery stuff like that.) I know you said you hate Java, but it is a very important language to learn, especially now, as it is slowly taking over the world through Android and Minecraft biggrin.png

However, if you start to think that C++ is a bit complicated (which it really can be), then I suggest Python. Python and C++ actually have a pretty good combination and you can quickly get out your ideas with Python.

P.S. Maths can be important in games, especially 3d games, but you don't need to be absolutely amazing at it; just learn the core concepts that you require like dealing with forces. Edited by TheVirtualDragon

Share this post


Link to post
Share on other sites
I just want to say something about the tutorials.
(Forgive me if my response is not the best because i did not read all the posts)

If you want to learn C++ and you want to have your game to be multiplatform then i seggest you
lazyfoo.net it is a very good site to learn how to make games in C++ and SDL, well explained with
great articles on good practices, also if you later want to use 3D it also have OpenGL tutorials.

If you like youtube tutorials you can search for "thecplusplusguy" videos, again C++ and SDL
great tutorials very well explained (the guy have a little uncommon accent but you won't have much
problem for that) he also have a platformer tutorial and a FPS tutorial (3D OpenGL)

I actually am very comfortable with C++ and SDL, they have exactly what i need and i feel they are
pretty easy to pick up and learn.

I hope this post help you somehow.

Good Luck! Edited by Xirion

Share this post


Link to post
Share on other sites

[quote name='3Ddreamer' timestamp='1345691401' post='4972461']
There are still a few companies making games and simulations (gameplay types) in java and it has a huge collection of existing libraries, many open source, so java still is an option.


3Ddreamer


The number of companies using Java (directly or indirectly) for games is growing actually, every single game on Google Play contains atleast some Java code (The entrypoint in an Android app has to be written in Java (Allthough some engines hide that part from you)
[/quote]

Yes, that's true. A few languages outpaced JAVA for years and now it is getting new use with these latest trends.

He says that he hates JAVA but people say that it is actually quite a good language for early learning and also good for long term goals.

Kripis, maybe it was only the tutorials which led you to hate JAVA. There must be better tutorials out there.



3Ddreamer

Share this post


Link to post
Share on other sites

[quote name='SimonForsman' timestamp='1345710162' post='4972515']
[quote name='3Ddreamer' timestamp='1345691401' post='4972461']
There are still a few companies making games and simulations (gameplay types) in java and it has a huge collection of existing libraries, many open source, so java still is an option.


3Ddreamer


The number of companies using Java (directly or indirectly) for games is growing actually, every single game on Google Play contains atleast some Java code (The entrypoint in an Android app has to be written in Java (Allthough some engines hide that part from you)
[/quote]

Yes, that's true. A few languages outpaced JAVA for years and now it is getting new use with these latest trends.

He says that he hates JAVA but people say that it is actually quite a good language for early learning and also good for long term goals.

Kripis, maybe it was only the tutorials which led you to hate JAVA. There must be better tutorials out there.



3Ddreamer
[/quote]

Java imo is a bit like PHP and C++ , you use them because of the ecosystems around them, not because of the languages themselves, i have a solid love/hate relationship with all 3 of them, (Allthough in PHPs case its mostly hate), I think its perfectly normal to dislike some languages. Edited by SimonForsman

Share this post


Link to post
Share on other sites
SimonForsman,

Yes! Yes!

Many comments in the threads show some people not realizing that the systems are the determining thing, like medium (air, land, sea) determines the vehicle. The programming language is the vehicle.

So right you are! biggrin.png

3Ddreamer

Share this post


Link to post
Share on other sites
Thanks for all the replies and wow I went from 135 reputation to 86 just for couple of opinions, I'd suggest (even known is not from this forum) reddiquette; http://code.reddit.com/wiki/help/reddiquette

Share this post


Link to post
Share on other sites
You like the way C++ appears to you, then go for it. While you are learning a language (since you don't really know any), you should pick one that interests you. Then, when you want a language with features that work better for you, come back and ask.

*Slightly off-topic* I finished Algebra I when I was 14, so what's with the math bashing? It was a year yearly than when it is normally offered where I am, but still, knowing enough math to solve math problems is fine. For a good portion of the math in a 2D game, all you need to know is substitution. Your math mostly has variables on the left side of the equals sign (storing answers), and the substitution comes from mentally replacing the variables on the right when you are working things out. Edited by Dragonsoulj

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement