CoN 25th Anniversary: 1997-2022
Programming Courses

Posted: 23rd October 2005 05:39

*
Holy Swordsman
Posts: 2,118

Joined: 18/7/2004

Awards:
Celebrated the CoN 20th Anniversary at the forums. Member of more than ten years. User has rated 300 fanarts in the CoN galleries. Participated at the forums for the CoN's 15th birthday! 
User has rated 150 fanarts in the CoN galleries. User has rated 75 fanarts in the CoN galleries. User has rated 25 fanarts in the CoN galleries. Member of more than five years. 
I know that there are at least a few programmers here at CoN. I was wondering what coursework you would recommend for someone who was considering a career in programming?

I've always wondered what a Final Fantasy Tactics II would be like. What sort of programming classes do you think would be best suited for that type of game?

Thanx
Post #100598
Top
Posted: 23rd October 2005 06:15

*
Cetra
Posts: 2,350

Joined: 19/9/2004

Awards:
Member of more than five years. 
It depends a lot what you want to do later on. I myself wanted to be a game developper when I was younger, but then I learned what it was really like and flipped over to office developper.

The fact that I've been developping applications professionally for 2 years makes me quite glad I chose that kind of job. Especially when considering that I'd still be a few years away from game developper and with half the salary I get now...

I'm not going to dissuade you, but you're going to have to consider a few things: you won't be deciding anything ("Hey, let's create a race of moogle/chocobo hybrids!" ...Nope. Not your job. Not by a long shot), you'll be faced with MUCH tighter deadlines than as an office developper (working 4+ hours overtime on some days at my current job is a joke compared to that), and, frankly, games are something you'll grow out in a dozen or so years (I used to think I never would because I played an unhealthy amount of games, but now? Ehh...) This is what you're going to be doing for the rest of your life: think REAL HARD about it before you decide, because if you're not 100% in love with programming and consider money to be one of the factors deciding where to work, you're going to hate yourself for this.

Now then... what you should do is ask the people who CAN inform you instead of people on a message board: the people in charge of the studies program you'll be taking in college. Here, in Quebec, computer science requires advanced math. Chances are it's no different in the US: maths are crucial to programming. Especially game programming. Let's see if your math is up to snuff: when coding ES's map engine, I wanted to be able to determine...

1- Which polygone on the map a sprite is standing on.
2- At which height along this polygone the sprite is.

Keep in mind that polygones are NOT flat triangles, but can (and generally are) be tilted. You have the three XYZ positions defining the polygones's three points and the X/Z position of a sprite. Solve for Y. tongue.gif This is a VERY EASY problem you shouldn't find yourself messing around with longer than a dozen minutes or two, and is the kind of thing you'll be programming. Still struggling? Then devote all of your attention in math because, believe me, it's horribly important. Less so in office programming, but it's still a prerequisit.

Academic issues aside, you'll need something to show off to your employer and a foot in the door beforehand. Good luck getting a job if you run up to a random company and offer your services. But if you know someone who works there or get an internship at the company? You're already a good quarter of the way to being hired.

And I did say you'll need something to show off. Three things, in fact.

- Experience. Work experience counts for a lot in this domaine. Though this doesn't apply to you yet, when you'll have ~5-8 years of actual work experience and good reviews from your employer(s), you'll be worth your weight in gold compared to the textbook knowledge geek fresh out of MIT even if you've only completed highschool!

- Knowledge. If you only know HTML, javascript, and a bit of PHP, you're probably not going to get hired. Who wants to put someone through a few dozen hours of training to learn a language and have them do a half-assed job? Learn as much as you can, and learn it damned well. Focus on the important languages. Web-based languages are VERY important in office programming (I'm pretty much the only person at work who knows ColdFusion, which makes me somewhat more worthwhile than I was when I joined because one of our projects is written in CF), and knowing C/C++ for game developement is a VERY good start. Don't stop there if you can help it though!

- Projects. Completed ones if possible. Have something GOOD to show off. For game developement, tech demos impress quite a bit. And frankly, writing a visually impressive particle system in OpenGL isn't too hard (maybe a month of dedicated effort?) I showed off the website to an old RP channel I maintained to my boss and it rather impressed him because of the features it had (user accounts, messaging system for players, player/character databases...)

Finally, always remember that you're twice as bad as you think you are. Never overestimate your worth. If you think you're hot shit because you can get a 2D sprite running around a single-layer 2D map, think again: you suck. Badly. VERY badly. That's nothing: a 13 year old kiddie can do that. Keep pushing yourself and never stop to think, "wow, man, I rock." You don't. No programmer does, but it's so easy to feel high and mighty when you pump out something that makes use of skills you've only recently acquired. wink.gif

And, well, again, think VERY carefully what it is you want to be doing for the rest of your life. We're talking old-and-grey-with-wife-and-kids-but-not-retired-yet life too, not just young-and-full-of-creativity-not-yet-crushed-by-the-reality-of-things life. wink.gif If you're thinking, "omg itd be so kool 2 make a game wow thatd rock," don't do this. Please. If you're excited at the prospect of implementing an "inventory" class that would contain a dynamic list of member data pointing to other objects and having various sorting methods that access child object data, all the while not caring how many hours left before the sun goes up and you have to retreat to your small yet comfy appartment, this job will rock your socks.

This post has been edited by Silverlance on 23rd October 2005 06:25

--------------------
"Judge not a man by his thoughts and words, but by
the quality and quantity of liquor in his possession
and the likelyhood of him sharing."
Post #100600
Top
Posted: 23rd October 2005 07:09

*
Magitek Soldier
Posts: 319

Joined: 1/10/2005

Awards:
Member of more than ten years. Member of more than five years. 
As far as programming RPG games go, I do have a freelance tip:
Somewhere on the Internet (don't know if you can get it for free though), there is a program called RPG Maker. This allows you to create your own 2D RPG game. You have to download the program and a Run Time Player to go with it. I know that RPGMaker 95 (not exact number) is no longer free: you have to buy it. Later came out an RPGMaker 2000 (updated version, no way of knowing its free or not) and RPGMaker XP(see RPGM2k above) is another option. These programs can get you some experience in messing with sprites (that can help with character modeling), and learn how to make the game give complex choices through example. This means you will spend LONG HOURS messing with what the program can do. Each one provides its own battle system and basic sprites, but like I said: LONG HOURS.
G/L with you! thumbup.gif

--------------------
Neneko is Neneko because Neneko couldn't be Neneko if Neneko wasn't Neneko!
--as quoted from Neneko, Mahoraba {Heartful Days}

I can stab a man with a thick paperback book thru the ribcage.
Post #100605
Top
Posted: 23rd October 2005 07:42

*
Cetra
Posts: 2,350

Joined: 19/9/2004

Awards:
Member of more than five years. 
No. Not by a long shot. RPGMaker is absolutely worthless for this, and quite frankly, illegal to begin with anyways (unless you import it from ASCII directly).

This is not programming, nor is this anything like what you'll be doing. You won't learn anything you can use as a game programmer. Not even through the scripting engine: you'll be programming the scripting engine in the game you'll work on, and somebody else will script stuff into the game. Programmers don't draw sprites, they don't decide the layout of maps, they don't pick a storyline: they make these things work. Someone else takes the decisions, but it's the programmer's job to see to it that these decisions make it out in the real world. RPGMaker does the EXACT opposite of this by acting as the middle man that makes your ideas go from paper to reality.

In fact, RPGMaker does the job you would be doing. Imagine doing the reverse: taking data and writing an RPGMaker that makes that data into a game. THAT'S your job. At best, RPGMaker will show you what your work should accomplish once it's done. For 2D games. Which has less and less value in the real world, sad to say.

I hate to sound like a dick and blatantly contradict a post (and I'm terribly sorry, strikerbolt), but I'm afraid that's a very bad suggestion and holds absolutely zero value as a means of learning what the job you're shooting for involves.

http://bloodshed.net/ <- C++ compiler
http://www.gamedev.net/ <- Pretty solid reference material for game developement.

Your best bets are most likely there. MSVC is a great C++ compiler too, but it's costly. And there are other game developement websites, but GD.net is probably the most professional one (that I've seen; gamasutra is another good one.)

This post has been edited by Silverlance on 23rd October 2005 07:52

--------------------
"Judge not a man by his thoughts and words, but by
the quality and quantity of liquor in his possession
and the likelyhood of him sharing."
Post #100609
Top
Posted: 24th October 2005 04:56

*
Holy Swordsman
Posts: 2,118

Joined: 18/7/2004

Awards:
Celebrated the CoN 20th Anniversary at the forums. Member of more than ten years. User has rated 300 fanarts in the CoN galleries. Participated at the forums for the CoN's 15th birthday! 
User has rated 150 fanarts in the CoN galleries. User has rated 75 fanarts in the CoN galleries. User has rated 25 fanarts in the CoN galleries. Member of more than five years. 
I've been studying Java programming....is that of any real use in programming games like Tactics? I hadn't thought too much about all the overtime hours I would be logging. However, that's not to say that it would really deter me.

Thank you for responding so quickly and providing a lot of information


This post has been edited by Kane on 24th October 2005 04:59
Post #100676
Top
Posted: 24th October 2005 05:09

*
Cetra
Posts: 2,350

Joined: 19/9/2004

Awards:
Member of more than five years. 
Java is a very good start, but not something you'd use in professional game programming for the most part. The great thing about it is that it ressembles a LOT most low-level languages and makes the transition to, say, C/C++ very easy. So it's a damned good start. wink.gif

It's also quite decent for some 2D games, so it can help you learn some of the concepts behind game developement along with some theory on common algorithms and whatnot. Plus, it being object-oriented means you won't end up learning and getting used to procedural code only to switch to OOP after you move on to more serious matters.

Many people consider java to be the best way to start learning serious game developement languages. Personally, I got into the more serious stuff by leaping right into C++ with DirectDraw and it took me less then half a year to write a short 2D shooter; it's not too hard in the first place anyways.

For console gaming, there's a very high chance that C++ is what you'll be using. Most likely with some libraries specific to the platform you're developping for and/or written in the past by the company you'll be working for. To program a tactics-like game in java is definately possible, though it would probably have heavy requirements and wouldn't be as good.

I've always been a very firm supporter of C++/OpenGL because it's widely used, both commercially and by indie developpers. You already know Java, so migrating to C++ could be accomplished in a matter of months. Learning OpenGL is VERY easy: I wrote a basic 3D landscape engine on the same day I started learning OpenGL, and now I have a pretty solid and performant 3D engine for RPGs.

To sum it up, my advice is to start thinking about migrating towards C/C++ and working on an actual project somewhere down the line. Not at first though: VERY bad idea to put everything you've got into your first project. Write some gay little 1-dungeon RPG or something and learn from your mistakes. Once you know this stuff, you'll have very profitable "meat" to stick in your resumé to impress your potential employer.

--------------------
"Judge not a man by his thoughts and words, but by
the quality and quantity of liquor in his possession
and the likelyhood of him sharing."
Post #100677
Top
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members: