New to Programming. Where to Start?

Started by
4 comments, last by alnite 12 years, 3 months ago
Hello GameDev community! After a few years of dabbing in the wrong college major, I realize that I have a strong passion in videogames. I'm truly drawn towards video game design/composition, but I have a very strong interest in programming. It is something I want to learn, like most of you. I've been pulled in many directions and I would like guidance on where it would be best to begin.

First of all, I would ultimately like to move towards programming RPGs. Whether that has a lot or little to do with programming is beyond me. I'm assuming that piece of information will be helpful.

It doesn't have to be 3D; I'm an avid fan of 2D games as well. That being said, I've come across RPG Maker, and have decided to make a few games with that. I've started on one, thinking that making and completing a few projects, including getting a pretty good grasp on the script language in that particular program, would give me a good idea of what to expect when moving on to more complex programs.

Shortly thereafter I was introduced to Flash Develop. I was introduced to a program that actually starts me off writing code. Apparently it is a bit less ... user friendly than RPG Maker, and I have been told that it is a wise step to take towards moving to programs like C++.

Then, upon further research, I was advised by another colleague that my best bet would be to abandon both of my previous inquiries, and to jump head first into understanding the semantics and syntax of C++, that is, if I'm truly motivated to be a programmer.

Needless to say, I know little to nothing about writing any type of code with all three programs, and I seriously want multiple opinions, suggestions, and advice on where to turn. I feel as if the more time I waste searching, the less time I will have to try and become a well apt programmer.

I've thought of continuing on with creating rpg games with RPG Maker, getting used to the scripting, as well as learning C++ on the side.
But, I felt I should continue on and try to understand FlashDevelop, using RPG Maker on the side, making small flash games until I get a more concrete foundation of various syntax in that program, learning C++ once I had all but mastered (termed used loosely) FlashDevelop.

I hope that I'm not too far out there or all over the place. I'm eager to hear different opinions.

My Soundcloud: https://soundcloud.com/jasminecoopermusic

"The moment you cheat for the sake of beauty, you know you are an artist." Max Jacob

Advertisement
Don't worry about what languages your friends want you to learn. They like them, they can learn those languages themselves. :)

In fact, it doesn't matter what language you start with - Even if you start with RPG Maker scripting. See, the thing is that knowing a programming language is not the same thing as knowing how to be a programmer, or knowing the craft of programming. It's a start, a good start, and still a start.

Truth? Any programmer can make at least decent programs in any language, given one month. Why? A few reasons:

1) There's really only a few programming language paradigms - Object-Oriented, Functional, Procedural, (pointers, hidden pointers) - Once you know the paradigm for a language, programming in it is just a matter of learning the syntax and having a language reference handy. It takes time, true, but very little, compared to making a full game.
2) Once you know the paradigm and the syntax, knowing the sorts of algorithms, data and patterns you want to use tells you what to write. It's like knowing that, in French, name nouns come before descriptive nouns (Yeah, I don't know French, aside from Canadian public education). A game loop is a game loop, whether it's an object.Function(), a func(GameData data) that flat-calls itself or even a Do-While loop inside a Gosub-Return. Sure, the words are different. But you're still asking "Where's the bread?"
3) There is no "best programming language", in the same way there's no best tool in the carpenter's toolbox (not even the hammer :) ). Unlike carpenter's tools, however, programming languages are general enough you can pick a single language and stick to it - In fact, that's the best way to learn, early on (later on, you'll want to broaden out - C++ is recommended here, simply because, while it's very easy to glitch, hard to use, unwieldly, cannot keep to a consistant format and has obscure, odd naming conventions and forgotten relics (itoa is integer to c_str and depreciated, but still there and usable), you can do nearly anything with it - Once you get it working. And, it's the fastest generally-known Object-Oriented language. Yes, that was a recommendation).

And learning how to design games is part and parcel of learning how to program games - Without knowing how to design one and carrying through on designing one, your chances of finishing one solo are very low *Cough*myisthatfingerpointingatme*cough*.

So, in short, if you like RPG Maker, fire it up, script, have fun, learn - Scripting languages are programming languages, just generally more specific. When or if you want to learn more, do so. Write up some goals, make a plan, set a schedule and remember to do some programming just for fun. :)
If you want to start learning how to program in general, I highly recommend Learn Python the Hard Way: http://learnpythonthehardway.org/book/. This will teach you how to program in Python, but more importantly, will teach you some fundamental programming concepts (which you can use with any other language). As far as books go, this book is very practical and easy to follow. It's also written specifically for people with no programming experience; if you already have some experience, that's great, but you don't need it.


Then, upon further research, I was advised by another colleague that my best bet would be to abandon both of my previous inquiries, and to jump head first into understanding the semantics and syntax of C++, that is, if I'm truly motivated to be a programmer.




I would suggest you stop listening to this colleague. :)

This beginners guide will get you started on the major language choices for aspiring game developers, as well as tool, library and book recommendations for each of those languages.

The language you pick isn't going to really be a big deal, you need to learn programming first and most langauges are similar enough these days that if you abandon a language, you won't have wasted your time. With a few exceptions ( like Brainf*ck ), you really wouldn't waste your time learning any languages. That said, for a *first* language, C++ is a pretty lousy choice over all. The only other language I would flat out recommend against is Visual Basic 6 or earlier, as they reinforce some downright bad coding habits.


If you do go ahead with C++, learn C++, not some freakish mashup of C/C++ that seems to be far to common on the web. Start with a modern book or recent tutorial and go from there.
Are you still in school? Because my first suggestion would be to take their Comp. Sci. 1 course, and see if you actually like it after that course is over. That should tell you pretty quick if you want to be a programmer (and being a game programmer is still just being a programmer: you'll have to debug that code for a couple hours whether it's designed to juggle tax returns or RPG inventory)

Also:

I feel as if the more time I waste searching, the less time I will have to try and become a well apt programmer.

Unless you've been diagnosed with some fast-acting terminal disease, there's always time, as in it's never too late to start learning. The most important part is to start, period. After you get a few years of serious programming under your belt, all anyone who started before you can really flaunt is "more experience". It's such a dynamic field that everyone who's staying up on technology is always learning new languages/patches/paradigms.

Hazard Pay :: FPS/RTS in SharpDX (gathering dust, retained for... historical purposes)
DeviantArt :: Because right-brain needs love too (also pretty neglected these days)

Regarding Programming Languages:

It doesn't matter. It's like asking to use pencil, pen, or paintbrush when you want to draw. At the end, you'd need them all, depending on what you want to achieve. Python has been widely accepted as a beginner-friendly language. It's also been used by some industry professionals as a scripting language. You can also write the entire game in Python.


Regarding Third-Party Tools:

This includes RPG Maker and Flash Develop, and you'll be running into a lot more as you go further into game development. All of these tools are designed to make it faster to build games. I wouldn't say bad things about them, as I've seen people make decent games with these tools. However, the downside of using them is that once you gain expertise, you'll be good only on that tool. The skill is less adaptable.

This topic is closed to new replies.

Advertisement