Advertisement

Aspiring Game Developer, Fluent in C++, What Do I Learn Now?

Started by September 12, 2014 06:28 PM
7 comments, last by termhn 10 years, 4 months ago

Hey guys, so I am new to this site, and I have come here looking for some guidance.

I am a sophomore in college, and I am a CS/Math major. I have taken CS1, CS2, and am in Data Structures right now.

I consider myself to be fluent in C++, and for both of my final projects in my CS classes, I did game, using WinAPI, which was interesting.

Anyways, I have some ideas for a few other games that I would love to start working on, but I don't think WinAPI is going to cut it.

So I started messing around with Unity, but I quickly realized I have no idea about scripting, and that if I want to use Unity, I am going to have to learn either C# or JavaScript.

I have also seen a few thing about SFML, which I can use with C++, correct? So I wouldn't have to learn a scripting language.

However, I hope to get an internship this summer, and I am wondering if learning a scripting language would increase my chances at getting an internship.

What do you guys think? If I do decide to learn a scripting language, what would be a better choice?

Is there anything else I can do that would increase my chances at getting an internship?

Thank you for the help!

If learning a scripting language seems like a big barrier to you, by all means you should do it. Being fluent in C++ is great, but you should learn a few other languages. With some practice, you should be able to do useful programming in a new language after a couple of weeks.

That being said, I think learning SFML 2.1 is a very good idea.

So do both!
Advertisement

With some practice, you should be able to do useful programming in a new language after a couple of weeks.

Let me tell you a story. Long ago I decided to teach myself how to program, and I wanted to make games, so I bought some books and started reading. C++ programming and direct X on windows. That was a very difficult path. I read an article that suggest the first game to make was Tetris, so I tried to make it. I did get something that kind of worked (with a few bugs) after months of pain, but I was never able to finish it or polish it because I had written the code in a very disorganized fashion, and every time I changed something I would break something else.

(Other seasoned programmers will be nodding their heads at this point).

Fast forward years later. I wanted to see what Unity was about, so I downloaded it, watched some tutorials, and started making Tetris. I got a nice version working in two weekends, using C# for the scripting (and I've never used C# before).

The difference is experience. I've been programming enough and used enough frameworks that Unity/C# was really easy to pick up. Could I have done that when I started? No way. But don't let that stop you. Go make Tetris with Unity and SFML, and make a complete game. This includes:

A *.exe or other executable that someone else can just copy/paste and run.

A loading screen and/or startup screen

An attract mode of blocks falling and moving around

A score system, levels that get harder, and some way to save scores between playing

Music and sound. You don't have to make the sound yourself, but at least background music and sound effects

At least one flashy graphical effect somewhere just for the fun of it.

No bugs (at least not any you can find) You should be able to let it run all night without crashing too.

Will you get all that done the first try? Maybe. I didn't. It took many attempts before I knew enough to get that far.

I think, therefore I am. I think? - "George Carlin"
My Website: Indie Game Programming

My Twitter: https://twitter.com/indieprogram

My Book: http://amzn.com/1305076532

However, I hope to get an internship this summer, and I am wondering if learning a scripting language would increase my chances at getting an internship.

It's an obvious advantage, when you can say that you know more than just one programming language well. Also, scripting languages are usually used for different tasks than languages like C++, so not only you'll learn something new, but also show your future employer, that your your skills can be used in many different ways. Moreover, once you know one programming language, it's not that hard to learn another, relatively fast.

And, are you referring to any particular internship you want to get?

What do you guys think? If I do decide to learn a scripting language, what would be a better choice?

Python. But you should do your research on what could be most useful for you.

C# is pretty easy to transition to from C++. At least the basic features of the language, which is all that Unity really supports anyway, last I checked.

That said, learning more stuff is always good.

Awesome guys, I really appreciate all of the help.

I think I am going to give SFML a shot, and then maybe try and learn C# to use with Unity.

As far as other languages I should learn, what are some examples of some that I should prioritize?

Advertisement

As far as other languages I should learn, what are some examples of some that I should prioritize?


In no particular order:

* Python has already been mentioned.

* Perl is also good to know (a good "glue" language to run programs, parse their output, etc.).

* At some point, dabbling in assembly is probably a good idea, so you really understand what's going on under the hood.

* HTML5 / JavaScript / AJAX / whatever they call it these days (the browser is the interpreter!).

I'd also add Lua -- it's more minimalistic than Python and is often useful for embedding as a scripting language for your game (so that the players can extend it: modify the AI behavior, add custom scenarios, etc.). In fact, Lua would be my first choice for an embedded scripting language (not just) in a gamedev context.

It's also very easy to get started: http://www.lua.org/pil/

Here's a comparison: http://lua-users.org/wiki/LuaVersusPython (even though it's hosted on lua-users it points both the upsides and the downsides of both).

OTOH, if you already know Python, picking up Perl wouldn't necessarily have the highest priority (the use-cases of these substantially overlap).

I second Lua. Awesome language to work with in my opinion.

Also, another resource. If you're looking to get in and make games quickly, this probably isn't a good route. But if you want to understand what's actually going on "under the hood" of an engine, best practices, optimization, etc. I would seriously check out this awesome playlist. https://www.youtube.com/playlist?list=PLRwVmtr-pp04XomGtm-abzb-2M1xszjFx

This topic is closed to new replies.

Advertisement