So, i am 13, and I am starting to get... pretty good at programming. In other words, I have come a long way. At this moment, there is no way I will be able to do anything big. But, say... after another year of experience... what could I do? What do you guys think about starting to sell commercial stuff and putting all these skills to good use? I would love to, but I don't really know how to start. I am starting to learn some advanced stuff, such as threading, polymorphism, etc. But in another year, I will have hopefully learned some game development stuff and networking things. That is what my plan is, at least. What do you guys think?
Every kid interested in programming has this dream, but the cold reality is that one-man studios typically do not do well. There are, of course, rare exceptions... but I wouldn't bet the farm on becoming the next Pixel.
It will take you maybe 4-5 years maybe less to do something big. It also depends on what you are using to make your programs. It also depends on you, and how much time you are willing to spend on it.
If you are using java there are advantages and drawbacks. If you are using c/c++ there are advantages or drawbacks. I'm working on my own game engine, but now it as turned into an stl clone and general purpose engine. It took me at least 5-6 years and a lot of trial and error from various programs and I still have a little bit to go before its really worth anything. Right now I'm working on the windows part of it. No Matter how much you learn, there will ALWAYS be more that you don't know.
In addition there WILL be setbacks as in Life. Maybe your design will not be scalable, maybe your code or computer gets stolen like mine did, and you will have to redo a lot of things. I know not a whole lot about selling commercial stuff, but I'm definitely going to do it. It boils down to how much time are you willing to spend on it. There is a 10000 hour theory that It takes 10000 hours to become a master at something. Well in 5 years you could master a paradigm of programming, just like playing a piano, if you spend time doing it everyday.
There are 1000s of ways to do things in programming. For example, I could use XNA to make a game but then a few years later it becomes deprecated because Microsoft doesn't support XNA anymore (it did) OR you can do basically everything yourself and it will last for as long as it can keep up with competition.
I guarrantee you in a 1-2 year's time that what you think is advanced now, will be nothing compared to the next step above it. But you could sell something now if you are skilled enough and really want to. There are many variables.
You started at a good age. I started at 16-ish, and its now not very feasible to do more research on my own time due to college, and the things that come with being an adult.
@Disch
Check out Elysian Shadows. I first saw them when I started making programs maybe 4 years ago, and they seem to be doing well now and actually are working on a 2d game from a custom written engine. But they aren't one but they might as well be (1-2 man). Two guys coded the engine for NES, Dreamcast, Windows, now they got people working on the actual game.
Elysian Shadows, last I knew was running on Windows, PSP, Dreamcast, Mac, Linux, Android, and Ouya. They can't officially support PSP due to Sony and obvious legal reasons.
I just hope Vorbis has straightened up as he didn't present himself professionally at all. On his FB page he has multiple pictures of him flipping the bird at cameras (even had one on the ES site of him in a hospital bed flipping them off) and would post pics of empty liquor bottles talking about partying. I actually quit following him because of how he acted.
You would create your own save filetype. Then you would write a parser, using fstream and others. I would either encrypt said file so no one could easily adulterate it or would make the save file a binary file since there is no way to tell what's written in there without knowing how it's being parsed
Edit: I just noticed that there are a lot of 13 year old programmers in here (including me), it would be nice if we all got together and worked on a project.
I think it is. It's just bit more complicate when it comes to AAA games but the principle remains the same. Define a filetype, write a parser for it and possibly encrypt it. Than to load, I would deencrypt(don't know how it's written, not english) it and parse it feeding the data to where it's necessary.
They either make their own format or make a program that converts one format to their own. That latter would require you to find out about the first format used and get a program working that parses it before you can attempt to change its format to yours. That is for PC games. I don't know about console games as I think most of their development process is kept secret and part of a NDA.
I'd recommend only doing the checksum thing on release. Recompiling your resources (assuming they're in large, .pak-like files) messes up your flow (trust me).
I find with the encryption thing is to not worry about it, and similar to @Fredbill's suggestion only worry about things like that as you have approached a finished product (or you get really bored) - adding encryption after the save files is normally not difficult, and it saves time in the development process by not requiring you to continue re-encrypting your resources each time they get modified, significantly speeding up your development time.
Well, thanks for that advice... but I have ONE more question... about finished products and stuff. I will use Steam as an example. I have over 40 steam folders and subfolders, all filled with code. How do all of them compile into one big program? Is there like, a .main file that includes all of them, and loads them all up?
They don't compile. They are already compiled, or interpreted - but I believe they are rather compiled.
Anyway, you have resources - data, that will be interpreted by program, and main program - executable, that is the heart of program. So if you're looking at any program, it has main executable, and it also may contain some resources(graphics, sounds, AI scripts, level data, etc.).
If you're creating simple tic-tac-toe game for command line, you don't have to add anything. You can stick to one executable. If you're making graphical 2D platform game, you'll probably have to add some graphics, level info and sounds. If you're making RPG, you may want to store information about NPCs. It's all in these files.
Oh..... That makes sense. I always wondered how programs load up so quickly with all of those files. Well, thanks everybody. My questions were answered. And I was never planning on starting a big studio, I was just thinking about the possibility. What I really want to do is work at big company where it isn't all about work, such as Valve or Google, and then branch out with my own thing after having experience with the big dogs.