This week, we discuss the skills it takes to be a great developer (with lots of help from the folks at <a href="http://gamedev.stackexchange.com">Stack Exchange</a>).<br /> Come discuss this topic in the <a href="http://extra-credits.net/episodes/so-you-want-to-be-a-developer-part-1/#discuss">forums</a>.
Posts
So is there popular websites or something for open source proyects?? im a fast learner and willing to help in their proyects all i need is to "get my hands dirty" and learn to code ANYTHING! so i can finally advance in my game.
sorry for the large message and thanks for the video! SO HELPFULL!
The problem with most people who want to be game devs is that the first thing they tell you about when you ask them why is that they have IDEAS. Well, great. I have ideas, you have ideas, my boyfriend's 7 year old niece has ideas. Hell, just last week she wrote me up a ten page game design document complete with illustrations and detailed instructions on what color the dresses should be on the princesses involved.
If you don't want to go through getting a degree (and incidentally, I'm not saying it's necessary at all, just that it will give you a basis for things you need to know), you can always apply like crazy to game studios in your area as a QA tester to get your foot in the door and learn on the job.
Absolutely! If you're looking for an open source project to contribute to, check out github. There, you can find thousands of open source projects in whatever language(s) you know. Dig into a random project that interests you (might I recommend "Battle for Wesnoth") and spend some time poking through the code and trying to figure out what it's doing. Reading other people's code is an absolutely crucial skill. With practice, you'll be able to discern someone's thought process with the way they chose to solve a problem.
Once you feel comfortable with what you're reading, try to make some simple changes. Change the color of some UI element, or change the way damage is calculated, or optimize a loop that's being inefficient. Whatever little tweaks you see the opportunity to make, just jump in and make them. Don't be shy! Worst case scenario, it won't compile or something.
If you're looking for a great language to learn, I cannot even begin to express how much I love Python. It's cross platform, very flexible, has a massive standard library, and its syntax is deliciously clean. Sure, it has its quirks, but they are quirks that happen to be very educational. And there's a delightfully simple 2D game library for it called pygame, which I cannot praise enough.
In addition to github, an awesome community for game developers in particular is gamedev.net. Look for something you're interested in. There are tons of threads out there for developers looking to get started, and everyone on there is incredibly friendly and generous with their time. Wonderful people who really know their stuff.
If you're daunted by the graphical side of things, start without it! Try making a text adventure. You'll find challenges aplenty in reading and parsing user input, managing inventory and keeping track of the locations of players and objects in the world, saving the state of the game, creating puzzles, handling connections between rooms. Are there doors? Can they be locked? How does that work? Answering these questions is what software development is all about.
I really hope this helps!
Low-level stuff does not need to make you poop yourself in awe for software development to be your thing. It's helpful to know that stuff, which is why it is taught, but that's more where computer engineering intersects computer science. It's very important, but also largely academic in import, and no reasonable person would expect you to be excited about opcodes and transistors.
I'd say stick with it! Aside from a few crunchy bits like digital logic circuits and operating systems, the CS major is mostly about algorithms, data structures, languages, programming paradigms, and to a lesser extent mathematics, and once you graduate, there will be lots of directions you can take your skills in, and unless you decide to get into writing compilers or kernel hacking or something, you'll never need to care about opcodes again.