Sign in to follow this  
shodanjr_gr

CS Student trying to get into game development

Recommended Posts

I am a 3rd year CS student, trying to get into game development. I have quite a bit of experience with Java and know C++ basics. However i have never attempted to do any game-related work on either language. By reading online, i have decided to work with C++ (since Java doesnt seem to be appreciated for game development). What daunts me the most is the graphics department (since i have absolutely zero experience in it), and this is the part i need some guidance for. Any insight (in the form of tutorials/articles etc) is greatly appreciated :)

Share this post


Link to post
Share on other sites
My opinion: fuck what is 'appreciated' and go for what is 'appropriate'.

If you want to use C++, many will point you in the direction of SDL, or maybe even OpenGL and DirectX (if you want to dive into the deep end).

I say that if you are just learning, why not stick with Java's built in 2D system? It is extremely easy to use and will teach you the basics of rendering without having to really go figure out another library. I used Java in the 3 Hour Game Developmenet Competition that goes on around here every once in a while. I didn't have to worry about my game not working cross platform and I had plenty of materials to use online (Java API).

Once you feel comfortable with designing a primative game and how rendering works, you can move on to a C++ library like SDL without feeling too overwhelmed.

Just my opinion though.

-v

Share this post


Link to post
Share on other sites
Quote:
Original post by visage
My opinion: fuck what is 'appreciated' and go for what is 'appropriate'.

If you want to use C++, many will point you in the direction of SDL, or maybe even OpenGL and DirectX (if you want to dive into the deep end).

I say that if you are just learning, why not stick with Java's built in 2D system? It is extremely easy to use and will teach you the basics of rendering without having to really go figure out another library. I used Java in the 3 Hour Game Developmenet Competition that goes on around here every once in a while. I didn't have to worry about my game not working cross platform and I had plenty of materials to use online (Java API).

Once you feel comfortable with designing a primative game and how rendering works, you can move on to a C++ library like SDL without feeling too overwhelmed.

Just my opinion though.

-v


Agreed. Why bust your ass to learn a new language AND api that you will only know a small part of, just to fit some pre-conceived notion of what is better? If you know Java, use Java, unless you have a fondness of learning new languages and api's, start making games using what you know and worry about the rest later.

Share this post


Link to post
Share on other sites
But how do you go about making a game?

What do you work on first and how to you implement it?


PS: Learning something new (if its going to be more usable than what i already know) isnt a problem. For instance i believe that C++ and SDL are used in many homebrew attempts at software (on the PSP and on the GP2X for example) so learning to code games in that combination is going to provide me with a greater range of possible applications.

Share this post


Link to post
Share on other sites
google java game programming tutorial or beginning game programming tutorial. You'll find about 500 tutorials for making a game, pick one that is in a style you like. If you want to learn sdl/c++ you can google sdl game programming tutorial. That should point you in the right direction.

Share this post


Link to post
Share on other sites
I'm going to agree with the other posters about using what you are good at. If you want to do game development for yourself then definitely use Java.

On the other hand, if you are looking to get a job in the industry after you graduate then I would highly recommend you becoming very proficient at C++. I can't speak for the entire industry, but at my company if you are not highly proficient in C++ then you will not make it pass the preliminary phone interview.

Let me reiterate my original statement, if you are doing game development for yourself the Java is more then sufficient.

Share this post


Link to post
Share on other sites
As someone who has been in your situation (Graduated 2 years ago, knew Java, only a bit C++), start with Java. Game programming techniques, and learning new libraries is already difficult. Adding on a new language will be even more frustrating, especially since C++ is a mess of a languauge in many ways, and java doesn't entirely prepare you for some lower level issues. Memory access errors FTW!

Once you get some of the game programming concepts down, move on. Maybe try C#, or start with C++.

If you want to jump in, I would recommned the GameInstitute (Keep browsing this page, you'll eventually find their add, and make the site look better, or just, ya know, google it ;)). I'm taking their C++ Module II right now, and I think they do a pretty good job of covering C++.

One last piece of advice, don't set overly lofty goals (complex 2D sports game) with an extremely limited amount of time (18 weeks), using technology completely unfamilar to you (DirectX and C++), a problematic compiler (Visual C++ 6.0). And Especially don't make that the most important project of your college career. It will only end in sleepless nights, crazy stress, nearly breaking up with your girlfriend, and a poor grade to show for it all.

Okay, that last bit may not apply directly, but be careful of how much you take on at once. It's easy to get overwhelmed and frustrated.

Char

[Edited by - Charthepirate on September 6, 2006 1:22:52 PM]

Share this post


Link to post
Share on other sites
the only fundamental difference between most games and most non-game programs is that a game usually continually changes without any user input ... ie it keeps running the main game loop / simulation, instead of just waiting for events to respond to (it does respond to events, it just doesn't wait for them). In fact writing a game is almost exactly like writing a media player program.

One of the harder parts of a game is getting the interface to work properly if the user needs to select items in the game world, etc. The easiest way to start is to avoid this need entirely for your first few projects. This is one reason people recommend tetris, breakout, etc. They just use simple inputs (often a keyboard alone is enough) ...

As for where to start, start anywhere you want. Some people focus on visual features first, some gameplay logic, some framework support. Personally I like doing the game logic prototype first for simple clone games (IE write the simulation of your simple tetris world - game board, blocks, movement, rotation, line detection, end of game detection, etc). Then you can output the world state however you want (ascii console tetris anyone :)

Share this post


Link to post
Share on other sites
I agree that if you prefer JAVA, you should learn how to program games using JAVA.

Games are much like developing anything else; you build all the classes, methods, etc. that you need, and then call them all in a main loop that doesn't terminate until a specified criteria is met (the end of the game). There are tutorials all over this site. JAVA will be more than sufficient to learn that much.

Most colleges seem to introduce you to OOP programming with JAVA. Its a good way to learn, because its semi easier than C++. But eventually you will have to learn C++.

I certainly wouldn't switch to C++ AND try programming your first game at the same time - but I would certainly start taking a few classes.

But since your question is that you want to get into game development - you are going to need some experience. My suggestion here: internship. Its easier to get a job if they know you are working for nothing aside from college credit. Sure, they might have to give you some on the job training, and teach you some stuff - but at least they have someone to do some menial work for them to free up another programmer, and not have to pay you for it. My 2 cents.

Share this post


Link to post
Share on other sites
you should check out qt by trolltech, its open source and probably has one of the best documentations out there, its written in c++, has opengl support, AND allows an easily accessible user interface, hope this helps

Share this post


Link to post
Share on other sites
I dont know about others, but I got in by writing a game. It wasnt complete, but it demonstrated a number of principles used by modern 3d engines, and that was sufficient.

Coming from a very sparse programming background (basic knowledge of c), I worked through tutorials and books. I enjoyed "Thinking in C++" which is available from the author's website. Nehe.gamedev.net has some great tutorials on openGL, flipcode is still up, although locked (last time I looked). There is literally a ton of information available out there for the basics.

The only trouble I had was finding information on commonly used structures (not struct, but rather ways of doing things). I picked up "Programming Role Playing Games with DirectX" in order to get some more info on that.

Personally I chose c++ because I enjoy it. Most programming positions I see here seem to want c++, although that might just be timing. As to APIs...seems to be pretty diverse.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this