The Forums Are Now Closed!

The content will remain as a historical reference, thank you.

Dear Brad and other members of the Stardock team.

Dear Stardock Team

By on January 17, 2008 4:13:11 PM from GalCiv II Forums GalCiv II ForumsExternal Link
Hey guys! Sorry to waste your time but I'd really appreciate if you could read this and hopefully reply.
Currently I'm living in Ireland and doing my Leaving Cert (last school term). I want to go into Computer Games Development badly and mainly work on programming. Right now I have my sights set on Carlow Instute of Technology college, it offers a brilliant course of what I want exactly and it has been made with the help of Microsoft and it is fully backed and supported by them. Working on games is something I want to achieve badly and this course will help me get to achieve my dreams.
The reason why I'm writing this forum to you guys is because your the best people I know who could help me answer my questions because you are in the game industry. I would like to know if there is an opening for the gaming industry for programmers and where the market is going. I would also like your personal opinion if this course would meet the standards that the gaming industry is looking for and your own opinion on the matter as well. Also if you could recommend me any software or books to read to prepare myself for this course or to just get my hands dirty, as I am new to this it will have to be user friendly and for beginners. Here is the link of the course I wish to go to http://web.itcarlow.ie/courses_detail.asp?id=27&top_section=2&lower_section=10&lower2_section=35&uid=itcarlow
Any other information you want to throw in or your own personal comments would be great!
Thank you very much for taking the time to read this forum from your busy schedual and I look forward to your reply.

Yours faithfully,
mentor07825

0 Karma | 17 Replies
January 18, 2008 6:16:43 AM from GalCiv II Forums GalCiv II Forums
Unfortunately I'm neither Brad nor a Stardock employee, I'm not even involved in game development. However as leader of a popular open source project and as computer science student, I would like to share my point of view.

First of all, you need to understand that programming is a love-hate relationship. It can be great most of the time, but quite often it's just tedious and frustrating. You will eventually spend hours or even days hunting a single bug. You'll curse your code, blaming the compiler, insulting your co-workers, throwing chairs and so on. Until you find the problem which can be as trivial as a semicolon you inserted yourself in the wrong place. Insert some self-slapping at this point.

Are you terrified? Close the browser, turn off your computer and never come back. But if you're you still interested in becoming a developer, read on.

Even if some organizations claim otherwise, I don't think that good programming skills can be taught other than by self-teaching. I believe that the only way to become really a really good developer is though learning-by-doing, the earlier the better.
When I started studying, I had already been programming as hobby for several years. Everything I knew up to that point I had learned the hard way, trial and error. The programming courses at University were trivial and more or less a waste of time. Most other students however had no previous programming experience. And this fact showed during the practical courses. While these students learned our University's programming language of choice (Java), they had no programming skills. A simple analogy: Not everyone capable of writing English is a good writer or poet.

But what is studying worth for if not to learn programming? The answer is simple: It provides you the theoretical background. Basic data structures, automata and finite state machines, complexity theory, regular languages and grammars, compiler construction, model checking and so on. Unfortunately, these topics get neglected far too often in modern curricula.
It's entirely possible to become a programmer without knowing these things. However if you do know these things you can write faster code in less time. And should your boss give you an ridiculous task, you can relax and answer "Look, this cannot work, it's not computable" and you can give him the proof. (Now if your boss won't listen to you, try looking for a better job).

Back to learning programming, usually programming gets taught using the wrong language. Introductory courses usually use languages like Java, Python or similar. Both are fine languages and serve its purposes. However, there are some key concepts which cannot be taught using these two languages.
One if them is memory management. Java for example has garbage collection and bounds checking. You don't have to care about deallocating memory, Java will do it for you. Likewise, you don't have to be careful about your array boundaries, Java will complain if you make a mistake. These features are great, however if one lacks the understanding about these things, they do more harm than good.
Other languages, like C/C++ don't offer these features. As soon as someone who learned e.g. Java as first language starts using C/C++, he'll produce an endless stream of memory leaks, buffer overflows and so on. In C/C++ you have to be very careful, you can easily shoot into your own foot. But if you start with C/C++ as your first language, you'll learn memory management and input validation from the get-go. Especially input validation is of extreme importance if you do anything networking related or you'll produce programs with gaping security holes.

Another problem is the use of Integrated Development Environments (IDE). In the hands of an experienced programmer an IDE is of invaluable help, yet the developer would still be able to program with nothing more than pen and paper. But if you put an inexperienced programmer in front of an IDE, he'll click together some code in some wizards and dialogs but won't ever be able to fully understand the code the IDE generated.

Basically, to learn programming you need to start with a complex language where you can make big mistakes in (buffer overflows in C) and you need to start without use of IDEs, so you know how to invoke the compiler and how to start new projects from scratch without pre-generated code.

Personally I've started learned programming a few months after my father got a shiny new PC when I was about 11 years old. First with QBASIC (because it was preinstalled on the system), and soon after jumping straight to C++. I think I've read every single book about C/C++ the local library had to offer.

But by far the most important thing is to do some actual coding. You need to write lots of small programs, you need to make errors, you need to learn from them and you need to gradually increase the complexity at your own pace. This cannot be taught, you need to experience it yourself. You'll have to dedicate much of your spare time towards programming.

Start with some simple yet (for you) useful projects. Don't bother much with GUIs in the beginning, do something that involves complex computations or data manipulation.

For example go into a toy shop and buy some puzzles. In particular things like a Rubik Cube or those wooden puzzles that fall apart into a number of blocks and have to be reconstructed (Things like this: http://www.rombol.de/catalog/images/puzzle/6263m.jpg). Then go ahead and write a program that solves this for you.

Or you could write a program to edit the ID3 tags in your MP3 collection. A friend of mine wrote such a program for himself shortly after he started studying. By doing so you will learn how to read and understand specifications. And it involves a certain risk, if you do things wrong you could damage your files.

Use your imagination, there are lots of things you can do. And don't be let down if you don't succeed at first. Every failure is an opportunity to learn from it. Find out why you failed, revise your methods and try again.

To summarize, you need to have a passion for programming. Without investing lots of time, your coding will suck and you'll only get a lousy job. The industry is harsh and especially the gaming industry requires the best of the best with its high stakes and its threatening deadlines. Quite often, a game development studio cannot even afford a single mistake. One bad game and they are out of business.
January 18, 2008 11:03:25 AM from GalCiv II Forums GalCiv II Forums
Thank you very much for the input! Any ideas on where I may find the C++ prgramme? This is something I desperately want to do, and everything you said sounded like heaven, but like it, I have little understanding of it.
January 18, 2008 12:22:46 PM from GalCiv II Forums GalCiv II Forums

I agree with Raknor (from the bits I skimmed)...you'll need to love programming, logic, and math to really enjoy the task of . No matter how much you enjoy games, you'll need to enjoy the fundamentals jsut as much.

That said, perhaps you should dabble in some accredited computer science courses. Two semesters should help you determine if programming gets the problem-solving side of your brain excited, or leaves you bored and running for the nearest exit 

Best of luck!

January 18, 2008 12:37:55 PM from GalCiv II Forums GalCiv II Forums
There are a couple of great books about C++, for example "Thinking in C++":
[url]http://www.amazon.com/Thinking-C%2B%2B-Introduction-Standard-2nd/dp/0139798099/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1200677330&sr=8-1[/url] (Volume 1)
[url]http://www.amazon.com/Thinking-C%2B%2B-Vol-Practical-Programming/dp/0130353132/ref=pd_bbs_sr_2?ie=UTF8&s=books&qid=1200677330&sr=8-2[/url] (Volume 2)

A must-have for every serious programmer is Donald E. Knuth's "The Art of Computer Programming":
[url]http://www.amazon.com/Art-Computer-Programming-Volumes-Boxed/dp/0201485419/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1200677421&sr=1-1[/url]
Unfortunately quite expensive though.

You should probably check your local library for books about programming in C++. One advice though: Stay away from book that appear to be covering Windows GUI programming, that's advanced stuff. You want to learn the language first, not some overly complex API

As far as the tools are concerned, I'd recommend that you install any recent Linux distribution. They all bring along packages for GCC (GNU Compiler Collection) and easy to use IDEs, like for example KDevelop.
January 18, 2008 12:38:26 PM from GalCiv II Forums GalCiv II Forums
I wish I could, but I'd rather work up to the degree. I love math, albeit I do struggle sometimes. And I enjoy staring at a screen for hours on end so boredom is no problem with me! Also third-level education here is very expensive. It's only free for the first year and that's it. I don't care how drole it is, I want to do it. I can't see myself interested in anything computer related then the game degree that I have a link above.
January 18, 2008 12:39:45 PM from GalCiv II Forums GalCiv II Forums
Thank you very much for the books! I might just get them from amazon as the library I have locally (30 min drive) may not be equipped with them.
January 18, 2008 1:48:09 PM from GalCiv II Forums GalCiv II Forums

The game industry is a growing industry, and as such there are many opportunities, but there is also fierce competition.  You have to have drive and initiative to succeed, and never stop learning.

C++ is probably the most widely used language in the game industry.  Don't bother with Java unless it's a required course; any C++ programmer can pick up Java very quickly, and you won't get bad habits from starting with Java.  Lua and Python are also widely used for scripting, and C# is starting to be used, mainly for tools or for XNA games. 

Once you have a handle on C++, get Effective C++ and Effective STL.  They will make you a better programmer.  There are other books about how to be a better coder, but I haven't read them yet, so I can't give my endorsement yet.

Since it sounds like your chosen college has a game development program, you'll probably be doing large projects which you can use as demos. Demos are required by pretty much all game companies, so that's useful for you.  If you end up going for a more traditional degree, for whatever reason, make sure that you make games.  You'll also learn the most actually working on games.  Learn as much as you can from your classes, but don't stop learning outside of the classroom.  Play games and think about what makes them fun.  What could have been done better in the game? As a coder, you'll probably also naturally be thinking "how did they get that to work?" It really doesn't matter where you get your degree or what the degree is in, as long as you are dedicated to learning your craft.  Our newest developer that we hired has a degree in English, but he's a great developer.

When you go to apply for a position at a company, do research on the company so that in your cover letter you can talk about why you want to work for that company specifically, what interests you about that company.  Write a unique cover letter for every company.  Use spell checker, and get someone to look it over to look for grammar mistakes.  Your resume must be easy to read and should also be spell checked.  You should include on your resume any large programming projects that you have done, either in your spare time or for school, with a description of what kind of game it was and what your responsibilities were on the project (if a group project, what you worked on specifically).  By large, I mean that it should take you at least a half the school year to have done the project, unless your class was only a quarter long, but it should have taken you a lot of effort.  List your skills at the top of the resume, so that the HR people can quickly scan for buzz words.  Underneath skills should go work experience if you have relevant experience, otherwise your projects can go first.  You want the information listed in the order of its importance: skills, projects, work experience, education, etc. 

www.gamasutra.com and www.gamecareerguide.com have a lot of good articles about how to get into the game industry. 

 

 

 

January 18, 2008 2:01:59 PM from GalCiv II Forums GalCiv II Forums
Thank you so much! Really, the fact that your helping me means allot to me because this is something I definately want to do. And learning about it is no problem. The information that everyone provided today has been extremly helpful and I greatly appreciate for everyones contribution. I already know where I want to work in the games industry, SquareEnix or a Microsoft team. But I want to start small. The course that's being offered in Carlow is brilliant. Not only does it do classes and offers to play board games and next gen consoles and games (to learn what makes a game fun and how rules should be structured) but I should also learn how to make retro games and they offer a six month work placement in the industry. I'm just so excited to do the course! And walking into Carlow yesterday I got a good feeling about the place. Mind you, i've been wrong before by saying Trim was great. Different story. But this is different, it'll be brlliant. And I'll invest in a recorder to record all my classes. Hehehe, revision at its best.
January 18, 2008 2:52:29 PM from GalCiv II Forums GalCiv II Forums
Hmm... another post about programming. I made one about more than half a year ago. Its located here if you want to read it.
WWW Link

I have a few new questions myself, but I'm running out of time before I have to leave to get to class on time. Maybe I'll post them later.

Anyhow, you may wish to look into this for a C++ compiler. It doesn't seem to have a complex IDE enviroment, and it doesn't require you to have linux or something to work it (it works on windows).
WWW Link

________________
I hope this helps.
January 18, 2008 6:00:59 PM from GalCiv II Forums GalCiv II Forums
By the way, question similar or related to the one by mentor07825 frequently appear on http://ask.slashdot.org
While not representative, the comments to those questions often provide interesting insight (and quite often a good laugh. Good ol' /. humor ^^)


Most universities/colleges/schools offer mentor programs, where older students, graduates or people working in the industry offer their help. Be sure to participate in them. If possible, try to get an experienced developer as mentor, in your case preferably one working in the gaming industry.



January 18, 2008 8:02:45 PM from GalCiv II Forums GalCiv II Forums

Once you have a handle on C++, get Effective C++ and Effective STL. They will make you a better programmer. There are other books about how to be a better coder, but I haven't read them yet, so I can't give my endorsement yet.


I concur. Meyer's books provides good insight into C++ usage. I'd also recommend "Designing Components with the C++ STL by U. Breymann".
January 19, 2008 6:54:05 PM from GalCiv II Forums GalCiv II Forums
Are there any good books on the actual game programming? 3d engines, 3d graphics APIs, sound APIs, physics, commonly used formats, tools, etc?
January 20, 2008 8:17:20 AM from GalCiv II Forums GalCiv II Forums
Wow! Thanks for the link! This is really helpful! Thanks again for all your help!
January 22, 2008 4:23:13 AM from GalCiv II Forums GalCiv II Forums
Yet another related discussion came up today: http://developers.slashdot.org/developers/08/01/22/0217200.shtml
January 22, 2008 4:55:57 AM from GalCiv II Forums GalCiv II Forums
My 2 cents. I used to be a Game Producer (associate and then Executive) for a hardware and software publisher (remaining nameless).

I wont burden you with endless reams of what I feel might be important insights or anything but I do think that you are trying to become part of a GREAT industry.

There are plently of negatives, and there will be in any industry you decice to take part in but I found the gaming industry extremely rewarding and I think / hope you will too.

Best of luck,

Warmest regards,

VanCam

Shine on
January 22, 2008 5:27:08 AM from JoeUser Forums JoeUser Forums

Hey guys! Sorry to waste your time but I'd really appreciate if you could read this and hopefully reply.
Currently I'm living in Ireland and doing my Leaving Cert (last school term).


Hi,

I live in Ireland and studied here too. I also know a few people who are now studying and are on a similar path you want to be in.

Feel free to contact me if you think I can be helpful in any way.

http://www.netneurotic.net

(Follow link to homepage, find email and phone number.)

Good luck!
February 7, 2008 2:39:17 PM from JoeUser Forums JoeUser Forums
Are there any good books on the actual game programming? 3d engines, 3d graphics APIs, sound APIs, physics, commonly used formats, tools, etc?


There are a lot of books out there on game programming, but the ones that I learned with were for DirectX 8 and you'll want to learn DirectX 10. There might be some value in learning DirectX 9 as well since it may be a few years before DirectX 10 is standard. C++ is fairly standard, and it would probably be useful to pick up C#. Lua and Python are probably the most popular scripting languages used by games apart from custom scripting languages.

Unless you're really interested in sound programming, it's my opinion that it's not really useful to learn. GalCiv1 had a custom mp3 player which was really bad and it would have saved us a lot of trouble if we had just gone with an existing library like Fmod or Miles, which we use now. We used Bink for our cutscenes in GalCiv1 but we only needed one cutscene for Political Machine (in 2004) so we made the mistake of trying to make our own mpeg decoder and the time that we put into getting it to work and then supporting it ended up making it more expensive than if we had just licensed bink. Therefore, learn what you want to do and use other people's code if you can for other stuff so that you can spend most of your time working on what you enjoy working on.

For formats, XML is great for data. We use PugXML, which is very easy to use and since it tries to fix broken XML files, it doesn't just crash the game when it encounters an error. This isn't standard behavior, but in games, you need it to try to keep going rather than throwing a hissy fit when it encounters an error. Most people come up with custom 3D model formats that they export from 3D Studio Max or Maya (or whatever), but we've always just used .X files. We use png files for most of our graphics because they're compressed and they have transparency. DDS files (a DirectX format) are useful for textures where you want to create the mip map levels yourself.

As far as tools, most companies develop custom tools for each game that they work on to develop game content. We use Visual C++ for a compiler, WinCVS for source control (Subversion is also popular), and BeyondCompare to do file and folder comparisons.
Stardock Forums v1.0.0.0    #108435  walnut2   Server Load Time: 00:00:00.0001297   Page Render Time:

Stardock Magazine | Register | Online Privacy Policy | Terms of Use

Copyright ?? 2012 Stardock Entertainment and Gas Powered Games. Demigod is a trademark of Gas Powered Games. All rights reserved. All other trademarks and copyrights are the properties of their respective owners. Windows, the Windows Vista Start button and Xbox 360 are trademarks of the Microsoft group of companies, and 'Games for Windows' and the Windows Vista Start button logo are used under license from Microsoft. ?? 2012 Advanced Micro Devices, Inc. All rights reserved. AMD, the AMD Arrow logo and combinations thereof are trademarks of Advanced Micro Devices, Inc.