• Making a game from scratch.
    42 replies, posted
I know this idea is extremely far-fetched, as is may sound similar to a small boy wanting to become an astronaut. However, I am totally willing to do whatever it takes to make this a reality. I have recently found an indie game named "Overgrowth", you probably have already heard of it. While watching the videos that the maker, 'Wolfire' had posted, i had instantly been inspired. I have always wanted to make games ever since i was a little kid, and I have also been trying to learn java from multiple sources lately. Some of you probably already heard this type of story before, where someone aims at a goal to high to reach, and eventually just gives up because it's too difficult. I am a pretty tech savvy person, and understand computers extremely well to my knowledge. The only problem is that I don't know where to start. I don't know which languages to learn or what programs i need to get this thing off the ground. I'm not talking about a flash game or an iPhone app. I want to make a game similar to "Overgrowth" but not in play-style or plot, similar in design. I don't want to really use development kits or anything like that. I really want to learn what it takes to achieve such a task, and possibly even make my own gaming engine. If anyone has any guidelines, people to contact, websites or advise in general please share, and please take this seriously, no one likes a troll. Thank you.
If you are serious in creating games, I'd suggest you find a game developing/game theory school or something like that instead of learning from online tutorials.
[URL="http://www.gamefromscratch.com/post/2011/08/04/I-want-to-be-a-game-developer.aspx"]I want to be a game developer! ... now what?[/URL] Sounds about what you are looking for, assuming your question is technical in nature. That guide is pretty comprehensive ( and long! ) and covers the most common languages, then for each one, book, tutorial, library, tool, etc... suggestions. It doesn't really cover Flash, GameMaker, LOVE, etc... so it is by no means complete, but it does cover the most common languages. The rest is a matter of practice and perseverance.
Overgrowth is written in C++ and uses OpenGL (It's on linux so I doubt they would have bothered writing it using DirectX). Of course, I am biased towards suggesting C++ for this sort of thing as I use it all of the time, but I do think it is the right tool for the job for games that require real-time 3D graphics (on the engine side at least). The design of engines can differ quite a lot, for example the Source engine is all C++, whereas [url=http://unity3d.com/]Unity[/url] for example is written in C++ I think, but you can write games using C#, javascript and Python I believe. So at this point I would suggest either choosing to write a whole engine from scratch (like Wolfire have done) or picking something like Unity3D, which has done a lot of the groundwork for you. It's up to you what you really want to do here since different people find different parts of this process fun. If you do want to write the whole thing from scratch, I would again suggest C++ and OpenGL for the tools, which I recommend you play around with before going any further into deciding how your engine will work.
i recommend you learn the tools of the trade before taking the job.
[QUOTE=Zyx;34314155]If you are serious in creating games, I'd suggest you find a game developing/game theory school or something like that instead of learning from online tutorials.[/QUOTE] I'd consider this step a bit premature. Try it as a hobbyist before commiting. Hell, you should have saw the drop out rate at my university program. I bet maybe 50% of people dropped out in year 1. It really is a profession you should sample a bit before going the school route, regardless to what it is you are trying to program. Also, a lot of it really depends on the area he is in; availability might not even be an option. Finally of course, there is cost.
Start small. Make Pong. And learn a lot of math.
Start with C++. Watch all the tutorials included here again and again until you fully understand it. [url]http://thenewboston.org/list.php?cat=16[/url] Then try to understand Object Oriented Programming read articles, keep watching tutorials. I can give you a good article about it. [url]http://www.gillius.org/ooptut/index.htm[/url] Then choose a game library to start game programming Allegro SDL OpenGL DirectX and so on. After become master on the game library you chosen. Keep watching tutorials, reading books and articles. If you wanna make a 3D game you have to learn 3D modeling or you can stick with 2D it's less complicated.
[QUOTE=LuaGuy;34314317]-newboston-[/QUOTE] No, don't do that. [editline]20th January 2012[/editline] where's that huge post explaining why thenewboston is terrible
[QUOTE=LuaGuy;34314317]Start with C++. [/QUOTE] This is good advice, if you want an ulcer and not much else. Also, and I don't speak from personal experience, just hearsay, but as I've heard the NewBoston guy writes some downright horrific code. I haven't watched them personally, but I have heard many people vehemently calling them terrible.
[QUOTE=BlkDucky;34314334]No, don't do that. [editline]20th January 2012[/editline] where's that huge post explaining why thenewboston is terrible[/QUOTE] I learned a lot from him but there is an other very good tutorial on C++ too [url]http://www.youtube.com/user/antiRTFM#g/c/1D10C030FDCE7CE0[/url] or type absolute noob spoonfeed on youtube.
[QUOTE=BlkDucky;34314334]No, don't do that. [editline]20th January 2012[/editline] where's that huge post explaining why thenewboston is terrible[/QUOTE] I'm too lazy to write a long post about him again... just go back a few pages to the last similar thread, I probably have a decently sized post about why his tutorials suck.
Thanks for your opinions, however as far as classes go, i cannot really attend anything yet due to the fact that i am still in high school. I plan to major in college in this field, and I understand that it is important to see what i am up against before hand. Unfortunately, online tutorials is really all I have to learn from. Programming in my high school is pretty much considered a myth. so there are no clubs/electives that offer such teachings. One more note, I know this should probably be saved for later, but how would I go about writing a gaming engine/game? The problem I had with java when I started to learn the basics is that I knew what everything meant for the most part, but I had no idea what to write! It's like I knew what everything meant but didn't understand how it applied to the game whatsoever. Is this something that will come with time or simply just fall into place as I learn the language? thanks.
if you want a quick answer though, it's mixing psedo-syntax with theory, leading beginners in Java to think that "apples" is a fine name for a class and that "bake cake;" is a method.
oh and im switching to C++ thanks for the advice. :)
[QUOTE=Watermelonboy;34314409] One more note, I know this should probably be saved for later, but how would I go about writing a gaming engine/game? [/QUOTE] [I]I want to learn English, Oh and by the way, how would I go about writing a screen play?[/I] That's basically what you just did.
[QUOTE=robmaister12;34314396]I'm too lazy to write a long post about him again... just go back a few pages to the last similar thread, I probably have a decently sized post about why his tutorials suck.[/QUOTE] yeah, I can never find that post. The only reference to it I found was one of your posts saying "I already made a huge post about TheNewBoston in another thread" with no link to the actual post. Which is a shame. [editline]20th January 2012[/editline] it could be stickied by itself, honestly.
[QUOTE=Serapth;34314359]This is good advice, if you want an ulcer and not much else. Also, and I don't speak from personal experience, just hearsay, but as I've heard the NewBoston guy writes some downright horrific code. I haven't watched them personally, but I have heard many people vehemently calling them terrible.[/QUOTE] Maybe not ulcer but i lost so much hair after it.
Since you are a highschool student, sign up at [url]https://www.dreamspark.com/[/url] and get Visual Studio 2010 professional for free. Also DreamSpark gives you a free 90-day subscription to [url]http://www.pluralsight-training.net/microsoft/[/url] which is a professional developer training website. There are 2 C++ video tutorials there that are really good. Also check out the software practices catagory under the PluralSight library and learn "Principles of Object Orientated Design" after you learn C++. Then check out their design patterns library also. If you can atleast finish the C++ section under 90-days it would be great since their videos are awesome. [editline]20th January 2012[/editline] I'm in high school too.
[QUOTE=Serapth;34314443][I]I want to learn English, Oh and by the way, how would I go about writing a screen play?[/I] That's basically what you just did.[/QUOTE] Haha i had second thoughts asking that, sorry about that. I guess that's the 5 year old inside me. As for learning C++, i have heard that it is a VERY BAD IDEA to start with it. And that i should probably learn some other language first, is this true? I just don't want to learn a different language, and then try to learn C++ while having different habits and whatnot. Oh and to clear somethings up, i'm not going to start coding the game tonight or anything. i would probably want to start small and write useless, less complicated programs/games until i get familiar with the language. By the way, thanks everyone for the support. I really appreciate it. :)
C++ is a great first language to learn. Seriously. Take my word for it.
[QUOTE=awfa3;34314733]C++ is a great first language to learn. Seriously. Take my word for it.[/QUOTE] Will do!
[QUOTE=Zyx;34314155]If you are serious in creating games, I'd suggest you find a game developing/game theory school or something like that instead of learning from online tutorials.[/QUOTE] I've learned a hell of a lot more by googling around randomly (and working on my own) than I ever learned in school. There are some really bright people out there if you know where to look. The trick, though, is to [i]verify everything you read[/i], whether it be by experimentation, cross reference, or simple logic. While some people simply dismiss internet sources as being unreliable, I prefer to think of them as teaching the importance of skepticism and critical thinking, something which far too many people lack. Even old-school dead-tree vetted sources like popular encyclopedias are unreliable, you must always [i]think[/i] about what you're told and whether it [i]makes sense[/i], not just on the internet but in life, too. I'd love to say that everything my professors have told me was 100% factual, but that's not true. They're human and they make mistakes. So it really bugs me when people go bashing Wikipedia and other online sources. :\ @OP: It's definitely an ambitious goal, but not necessarily a bad one. You'll fail a bunch, but you learn the most from your failures, and if you're stubborn enough you'll eventually make a great programmer.
[QUOTE=Watermelonboy;34314687]Haha i had second thoughts asking that, sorry about that. I guess that's the 5 year old inside me. As for learning C++, i have heard that it is a VERY BAD IDEA to start with it. And that i should probably learn some other language first, is this true? I just don't want to learn a different language, and then try to learn C++ while having different habits and whatnot. Oh and to clear somethings up, i'm not going to start coding the game tonight or anything. i would probably want to start small and write useless, less complicated programs/games until i get familiar with the language. By the way, thanks everyone for the support. I really appreciate it. :)[/QUOTE] Saying this around you gets you blasted into oblivion, but no, C++ is a stupid language to start with. It's somewhat akin by learning to run using only one leg. C++ is a capable language, but it's not really geared towards learning. Oh, and suffering while you learn doesn't make you more of a man, it frankly just makes you a bit of an idiot. ;) See, there are certain traits that are common to programming, regardless to language, and those things need to be learned, regardless. But if you go the C++ route, you not only have to learn those things, you also have to fight with unweildy concepts like an archaic build system, horrible error messages, fragmented documentation ( soooo many outdated tutorials out there, teaching circa 1984 C++ ), basically have to learn 3 different languages at once ( hell, templates are a turning complete sub-language! ), Byzantine inheritance rules oh and of course memory management, which really isn't the difficult thing people make it out to be.
You're pretty much in the exact same boat as me...
Ah, polar opposites. Well, I always did hate the magnetism unit in school. To C or not to C. That is the question.
There is absolutely nothing wrong with starting with C++, if that's your thing. :\ I'd probably recommend Python or Lua as a very simple introduction to [i]general[/i] programming, but for the more technically-minded individuals and those interested in hardware, I'd recommend starting with plain old C. I've never really liked the OOP middle-level languages much (C++, Java, etc.). They always felt awkward to use, but that's more of a personal preference than anything else.
To be honest I really couldn't give a rats hat about how hard a language is to learn. I'm just looking for the optimal language to use for the type of game I would like to create. If it indeed takes me 4 or more months to learn then so be it.
[QUOTE=Watermelonboy;34315295]To be honest I really couldn't give a rats hat about how hard a language is to learn. I'm just looking for the optimal language to use for the type of game I would like to create. If it indeed takes me 4 or more months to learn then so be it.[/QUOTE] Define "optimal", that's the catch. I would posit that you could learn C++ faster by learning another language first! I am not saying C++ is a bad language, or that you shouldn't learn it, you just shouldn't learn it first. "Learning languages" ( such as BASIC, Scratch and Pascal ) were created for a reason. Different languages are ideal for different tasks, and one programming task is very much "learning to program", which C++ is not ideal for. You *can* learn with C++, it's just generally a dumb way to do things.
[QUOTE=Serapth;34315360]Define "optimal", that's the catch.[/QUOTE] Whatever language would be best for a 3d game, similar to Overgrowth.
Sorry, you need to Log In to post a reply to this thread.